이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
강민혁
가입: 2015년 9월 18일 올린 글: 9
|
올려짐: 2015년11월19일 3:43 주제: 과제 6-3 질문 |
|
|
RecLet 의 semantic을 보면
s, M |- e1 => <Lx, e, s'>, M'
s[x-->v1], M' |- e2 => v, M''
일때
s, M |- let rec f = e1 in e2 end => v, M''
이라고 나와 있는데
그러면
exp 가 LET(REC(f, x, e1), e2) 일때
e1 을 eval 하면 function의 closure 가 나온다는 뜻 아닌가요??
근데 e1 을 먼저 eval 하면 unbound id 에러가 뜨네요.
제가 잘못 이해한 부분이 있나요?? |
|
위로 |
|
|
진우정
가입: 2015년 9월 3일 올린 글: 8
|
올려짐: 2015년11월19일 8:57 주제: |
|
|
저도 이부분이 시맨틱스와 맞지 않다고 생각했는데
어떻게 된건지 궁금합니다. |
|
위로 |
|
|
최재승
가입: 2012년 9월 10일 올린 글: 211
|
올려짐: 2015년11월19일 10:39 주제: |
|
|
과
은 엄연히 다릅니다. 이 부분을 혼동하신 것 같네요.
인용: | LET(REC(f, x, e1), e2) 일때
e1 을 eval 하면 function의 closure 가 나온다는 뜻 아닌가요??
근데 e1 을 먼저 eval 하면 unbound id 에러가 뜨네요.
|
e1은 함수의 body 부분이니 eval 했을 때 closure가 나오지 않는 것이 맞으며, unbound id 에러가 뜰 수도 있습니다. 예를 들어 e1이 Num 1 이나 Var x 라고 가정하고 생각해 보시면 명확해질 것입니다.
구체적으로 어떻게 구현할지 알려드리기는 곤란하지만, 뼈대코드에 제공해 드린 Fn 과 App 케이스에 대한 eval 결과를 잘 살펴보시고 고민해 보시기 바랍니다.
조교 드림 |
|
위로 |
|
|
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|