이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
김도형
가입: 2022년 3월 8일 올린 글: 103
|
올려짐: 2022년5월10일 10:42 주제: [HW6] 3번의 람다 소거에 대해 |
|
|
안녕하세요.
다른 질문글에서 추천해주신 사이트(https://lambdacalc.io/)를 통해
test1.l의 내용을 확인해보았는데
\x.\y.\z.((((x y)(y z))(\x.x))(\x.x))(\x.x)가
λx.λy.λz.xy(yz)λx0.x0λx0.x0λx0.x0라는 형태로 나왔습니다.
제가 짐작했던 것과는 다른 작동이었는데, 저는
\x.\y.\z.((((x y)(y z))(\x.x))(\x.x))(\x.x)
-> \y.\z.((((\x.x) y)(y z))(\x.x))(\x.x)
-> \z.(((\x.x) (\x.x))((\x.x) z))(\x.x)
-> ((\x.x) (\x.x))((\x.x) (\x.x))
-> (\x.x)((\x.x) (\x.x))
-> ((\x.x) (\x.x))
-> (\x.x)
와 같이 작동하리라 짐작하였습니다.
혹시 어느 쪽이 맞는 건가요?
감사합니다. |
|
위로 |
|
|
이재호 Site Admin
가입: 2022년 3월 6일 올린 글: 83
|
올려짐: 2022년5월10일 22:19 주제: |
|
|
안녕하세요, 조교입니다.
사이트의 결과대로 나오는 것이 맞습니다.
도형님 생각과 같이 진행이 되기 위해서는 괄호가 다르게 [ (λx.(λy.(λz.(x y)(y z))(λx.x))(λx.x))(λx.x) ] 묶여있어야 합니다.
숙제 문서에 있는 람다식의 문법에서도 확인할 수 있듯, E E (application)이 highest-precedence를 가지기 때문입니다.
lambdacalc.io의 documentation (https://lambdacalc.io/documentation.pdf)에서도 확인할 수 있는 내용입니다.
감사합니다. |
|
위로 |
|
|
|