구자민
가입: 2007년 9월 21일 올린 글: 14
|
올려짐: 2007년10월20일 2:03 주제: 4.2 번 숙제에서 id 처리에 대한 질문입니다. |
|
|
저는 2번째 숙제는 CALLR(f, x)를 이용해서 받은 x, 즉 id가 등장하는 부분을 전부 바꿔야 한다고 이해를 했습니다.
숙제에 나온 것 외에, id 를 사용하여 값을 표현하는 것이
FOR id, e1, e2, e3
read id
, ...
가 있습니다.
그런데, 다른 건 유사 명령어로 대체할 수 있지만 위의 2개는 id를 다른 것으로 바꾸기가 힘드네요. 숙제에 의하면 id를 loc 타입으로 바꿔서 적절히 처리해야 하는데, 위 두 명령어는 id를 loc 타입으로 바꿔서 같은 작업을 처리할 수가 없는 것 같습니다. eval 함수를 수정하지 않고는요.
코드: | ex)
let proc test(x) = read x
in
let y := 3 in
test<y>; write(y)
|
위와 같은 상황에 대해서는 id를 어떻게 처리해야 할까요? loc도 인자로 받을 수 있는 함수를 새로 추가해야 할까요? 아니면 원래 loc를 인자로 받을 수 없는 것들이니 저것들은 처리를 하지 않아도 될까요? |
|