이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
노건일
가입: 2009년 9월 26일 올린 글: 50
|
올려짐: 2009년11월5일 23:16 주제: ex2 test 결과에 대해.. |
|
|
1. (\y.yy)z
2. App((Lam("y", App(Id "y", Id "y"))), (Id "z"))
일단 앞의 과한 욕심은 접고,
1번과 2번이 같은식이길 바라는건 과한 욕심이 아니겠죠?
그런데 make - run 으로 1번을 돌리면 yy가..
OCaml 실행기에서 2번을 돌리면 zz가 나옵니다. 물론 같은 코드로요
z를 더 복잡한 (예를 들면 (\z.z)) 식으로 바꿔도 결과는 역시
yy와 (\z.z)(\z.z)로 다르게 나옵니다.
뭐가 문제일까요.. 아.. 정말 시간이 갈수록 슬퍼집니다.. |
|
위로 |
|
|
허기홍
가입: 2007년 9월 27일 올린 글: 231
|
올려짐: 2009년11월6일 14:12 주제: |
|
|
1을 파싱하면 2가 될텐데
이상합니다.
ocaml 실행기에서 2번을 돌린다는 것은 무슨 말이죠? |
|
위로 |
|
|
김동현
가입: 2009년 9월 15일 올린 글: 7
|
올려짐: 2009년11월6일 16:36 주제: |
|
|
"yy"라는 free variable로 인식된게 아닐까요... |
|
위로 |
|
|
노건일
가입: 2009년 9월 26일 올린 글: 50
|
올려짐: 2009년11월6일 21:13 주제: |
|
|
아 그냥 OCaml 실행기에서
reduce (App((Lam("y" .... ) ;;
이렇게 실행하면
App(Id "z", Id "z") 라는 결과를 뱉어주는데요
run으로 돌리면 yy라는 결과가 나오더라고요~
-----
free variable이라고 쳐도
저 z를 \z.zy 뭐 이런걸로 바꿔서 해봐도
Ocaml 실행기에서는
App(Lam(z, App(Id z, Id y)), Lam(z, App(Id z, Id y)))
이렇게 실행되고
run 에서는 그대로 yy로 나오더라고요..
문제가 뭔지 감도 못잡겠어요.. 어흑. |
|
위로 |
|
|
허기홍
가입: 2007년 9월 27일 올린 글: 231
|
올려짐: 2009년11월7일 1:12 주제: |
|
|
김동현씨 말처럼
혹시 yy를 붙여쓰셔서 그런게 아닌가 싶습니다.
y y 해야 APP가 되는것입니다만... |
|
위로 |
|
|
노건일
가입: 2009년 9월 26일 올린 글: 50
|
올려짐: 2009년11월7일 9:23 주제: |
|
|
아...
진짜 멍청한 질문이었네요 ㅋㅋ
두분 감사합니다~ |
|
위로 |
|
|
|