이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
민현기 손님
|
올려짐: 2009년11월5일 20:00 주제: JTR 질문입니다. |
|
|
(trans e1) (Sm5.JTR((Sm5.PUSH(Sm5.Val(Sm5.Unit)) :: []),(trans(K.WHILE(e1,e2)))) :: [])
이런식으로 썼고, 분명히 (trans e1) 의 결과가 true임에도 불구하고 스택이 터집니다. JTR이 내부 두 커맨드를 모두 실행한 뒤 하나를 고르는 방식인가요? |
|
위로 |
|
|
허기홍
가입: 2007년 9월 27일 올린 글: 231
|
올려짐: 2009년11월5일 20:50 주제: |
|
|
sm5.ml : 135줄을 보시면
조건을 검사해서 알맞은 쪽만 다시 커맨드에 올립니다.
따라서 sm5머신이 양쪽 모두를 실행하는 것은 아닙니다.
그런데 그 이전에
ocaml에서는 trans(K.WHILE(e1,e2))를 먼저 계산하겠죠.
그리고 그 계산 결과로 JTR(t, f)를 만들때 무한한 리스트가 나와서 메모리 사용량이 넘치는 듯 하네요.
아니라면 코드를 보내주세요. |
|
위로 |
|
|
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|