람다 미적분 감소 : ((((람다 F (람다 x (fx)))) (람다 y (* y y))) 12)

cs.stackexchange https://cs.stackexchange.com/questions/122084

  •  29-09-2020
  •  | 
  •  

문제

입력

(((lambda f (lambda x (f x))) (lambda y (* y y))) 12)

what does this step evaluate to: lambda x (f x)

나는 이것을 평가하려고 노력하고 있으며 지금까지 다음과 같은 나무가 있습니다 :

여기에 이미지 설명을 입력하십시오 >>

어떻게 평가합니까?내가 뭘 잘못하고 있는지 또는 이것을 진행하는 방법에 대한 지침을 찾고 있습니다.

도움이 되었습니까?

해결책

람다 표현은 먼저 가장 왼쪽의 재 적혈을 줄임으로써 평가됩니다. REDEX는 $ (\ LAMBDA A.B) C $ 의 폼의 무언가입니다. 귀하의 표현은 $ (\ lambda f. \ lambda x.fx) (\ lambda y. * yy) ~ 12 $ . 그래서 당신의 첫 번째 재건은

입니다

$$ (\ lambda f. \ lambda x.fx) (\ lambda y. * yy) $$

$ (\ lambda y. * yy) $ $ y $ 을 대체합니다 < SPAN 클래스="수학 용기"> $ \ lambda x.fx $ $$ \ lambda x. (\ lambda y. * yy) x ~ 12 $ $

다음 Redex는 전체 표현식입니다 ( $ (\ lambda y. * yy) x $ 은 또한 REDEX이지만 가장 왼쪽에는 ) $ 12 $ 수학 컨테이너 "> $ x $ 을 대체합니다. 따라서 $$ (\ lambda y. * yy) ~ 12 $$

그런 다음 마지막 반드시는 전체 표현식이 다시 나타나므로

$$ * ~ 12 ~ 12 $$

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 cs.stackexchange
scroll top