람다 미적분 감소 : ((((람다 F (람다 x (fx)))) (람다 y (* y y))) 12)
-
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 $$