이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
정민재 손님
|
올려짐: 2005년11월7일 0:53 주제: 5-1 구현하신분 힌트좀 부탁드립니다.. |
|
|
아직 5-1 에서 헤매고 있습니다.
궁금한 것은 재귀호출 구현부분을 옮기는 방법인데요,
K-- 에서는 CALLV 에서 바인딩된 f의 env에다가 x와 f를 추가하여 재귀호출이 가능하도록 되어 있습니다. 그런데 Sm5 에서는 바인딩된 f의 env에 x만 추가하여 CALL 을 실행하게 되어 있어 (x,C',E')의 C'에 f를 호출하는 부분이 있으면 unbound 에러가 나게됩니다.
LETF 변환시에 현재 환경에다가 f를 바인딩한 후 다시 PUSH 할 수는 있지만 PUSH(x,C') 가 함수를 바인딩하기 전의 환경을 넣기 때문에 반복 재귀호출일 경우 결국 unbound 에러가 나게 되네요...
염치 없지만, 구현하신 분들이나 아시는 분들은 아이디어좀 나눠주셨으면 합니다. |
|
위로 |
|
|
박대준
가입: 2005년 10월 7일 올린 글: 245
|
올려짐: 2005년11월7일 1:44 주제: |
|
|
숙제를 헤매이고 있는 한 사람으로서, 글쓰신 분 기분이 이해가 갑니다.
전, C' 을 약간 조작했습니다.
단순히 C' 을 함수 body 라고 보지말고, 그 놈도 뭔가 일을 하도록. ^^
이정도면 눈치채셨겠죠? ㅎㅎ |
|
위로 |
|
|
한재호
가입: 2005년 10월 27일 올린 글: 14
|
올려짐: 2005년11월7일 14:42 주제: |
|
|
저 역시 이 부분에서 몇 시간 째 막혀 있습니다.
C'이 스스로 바인딩을 하게 해야 할 것 같은데
그렇게 해도 민재님처럼 상수번의 재귀호출밖에 못하겠더군요.
아... 더 다른 힌트는 주실 수 없나요 ㅠ_ㅠ |
|
위로 |
|
|
한재호
가입: 2005년 10월 27일 올린 글: 14
|
올려짐: 2005년11월7일 15:46 주제: |
|
|
한 시간 더 헤맨 결과,
주어진 SM5의 구조만으로는 불가능하다고 결론 내렸습니다.
그리고 재귀호출이 안되니
malloc(n)의 변환도 불가능해지는 군요.
SM5는 루프가 불가능한 구조이기 때문에
n번 무언가를 하기 위해선 재귀호출밖에 방법이 없으니까요...
...라고 투정대고 싶습니다만...
아 신이여 절 구원해 주소서... ㅠ_ㅠ |
|
위로 |
|
|
한재호
가입: 2005년 10월 27일 올린 글: 14
|
올려짐: 2005년11월7일 16:04 주제: |
|
|
에라 모르겠다.. 하고 포기하고 방바닥에 누워 뒹굴거리다가
번뜩 아이디어가 떠올랐습니다. ㅠ_ㅠ
되는 군요. 할렐루야~~!!! ㅠ_ㅠ
혼자 지껄여 대서 죄송합니다. -_-;;;;
혹시라도 아직 못하신 분을 위해 말씀드리면
CALL 할때도 뭔가 살짝 더 해주면 됩니다. |
|
위로 |
|
|
공순호
가입: 2005년 9월 29일 올린 글: 363 위치: 302동 312-2호
|
올려짐: 2005년11월7일 16:12 주제: |
|
|
오우 지쟈스~!!
한재호님 만세! 저도 필받았습니다. |
|
위로 |
|
|
정민재 손님
|
올려짐: 2005년11월7일 19:12 주제: |
|
|
아 다들 어떻게 하셨는지..
전 아직도 잘 모르겠습니다.
그럼 LETF, CALLV 모두 작업을 해야하는 것인가요..?
아~ 염치없지만 조금만더 힌트 주실수 없을까요.
답답합니다 ㅡ.ㅡ;; |
|
위로 |
|
|
윤휴빈 손님
|
올려짐: 2005년11월8일 3:15 주제: 하하.... |
|
|
무지하게 고민했는데..
방법을 알고 나니 허탈해지네요 -_-;;;
아직도 헤매시는 분이 계신다면 CALL할 떄 S를 잘 보세요 -_-; |
|
위로 |
|
|
|