이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
민세원
가입: 2015년 9월 17일 올린 글: 10
|
올려짐: 2015년11월19일 17:57 주제: 3번 뼈대코드 질문 |
|
|
1. APP에서 스펙문서에서는 e1먼저 계산하고 e2를 계산하는 것 같은데 뼈대코드에서는 e2를 먼저 계산하고 e1을 계산하는 것 같습니다. 어떻게 하면 되나요?
2. letrec이
σ, M ` let rec f = e1 in e2 end ⇒ v, M''
이런식으로 사용되는데 받는 인자는 decl ( Rec id*id*exp), exp 입니다.
decl의 첫번째 id가 f. exp가 e1이고 decl 밖의 exp가 e2인거 같은데 그럼 두번째 id는 어디에 쓰는 것인가요?
감사합니다 |
|
위로 |
|
|
최재승
가입: 2012년 9월 10일 올린 글: 211
|
올려짐: 2015년11월19일 21:52 주제: |
|
|
안녕하세요,
인용: | 1. APP에서 스펙문서에서는 e1먼저 계산하고 e2를 계산하는 것 같은데 뼈대코드에서는 e2를 먼저 계산하고 e1을 계산하는 것 같습니다. 어떻게 하면 되나요? |
이 부분은 뼈대 코드의 오류가 맞습니다, 혼란을 드려 죄송합니다. e1을 먼저 계산하고 e2를 계산하도록 수정하였습니다.
인용: | decl의 첫번째 id가 f. exp가 e1이고 decl 밖의 exp가 e2인거 같은데 그럼 두번째 id는 어디에 쓰는 것인가요? |
두번째 id는 함수의 인자에 붙는 이름입니다. LET(REC (f, x, e1), e2)는 함수 선언 let rec f x = e1 in e2 end 에 해당합니다.
문서에서는 let rec f = e1 in e2 end 로 표현되어 있기 때문에 여기서의 e1은 LET(REC (f, x, e1), e2)의 e1 과는 다릅니다, 주의하시기 바랍니다.
조교 드림 |
|
위로 |
|
|
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|