이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
유재민
가입: 2013년 10월 2일 올린 글: 11
|
올려짐: 2014년10월10일 0:19 주제: HW3-1 관련 질문입니다. |
|
|
안녕하세요. HW3-1 관련해서 질문을 드립니다.
https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=4407 이 게시물을 보면 글쓴이님이 올려주신 코드가 정상적으로 실행되어야 한다고 했는데(채점을 위한 테스트 케이스에는 포함시키지 않는다고 하셨지만), 저는 g(3) 부분에서 오류가 납니다.
저는 K언어의 정의에 따라 CALLV할 때 (Env.lookup env f)가 프로시저라는 전제가 있어야 한다고 생각했으므로 상수에 대한 CALLV 구문에서 에러가 나오도록 코드를 구현했습니다. 위 코드에서는 1/2이라는 상수에 대한 함수호출이 포함되어 있습니다. 상수에 대한 함수호출도 처리하도록 코드를 구현해야 하나요? |
|
위로 |
|
 |
김찬민
가입: 2010년 9월 6일 올린 글: 81
|
올려짐: 2014년10월10일 0:30 주제: |
|
|
말씀하신대로 상수에 대한 CALLV 구문은 Error를 Raise하는 것이 올바른 동작이 맞습니다.
하지만 if {} = unit then ..에서 {} = unit은 참이므로 g(3)에 해당하는 CALLV 구문은 해석이 될 일이 없습니다. IFT를 통해 해석될 수 있으므로 의미 있는 프로그램입니다. |
|
위로 |
|
 |
유재민
가입: 2013년 10월 2일 올린 글: 11
|
올려짐: 2014년10월10일 1:14 주제: |
|
|
아 그렇네요. 제 코드에 오류가 있었습니다. 감사합니다. |
|
위로 |
|
 |
강동옥
가입: 2009년 9월 18일 올린 글: 602
|
올려짐: 2014년10월10일 13:24 주제: |
|
|
네, 김찬민 씨의 설명이 맞습니다.
주어진 언어에는 if expression이 있으므로 주어진 코드에서 해석(실행)되지 않는 부분이 있을 수 있습니다. 이렇게 실행되지 않는 부분에는, type error 등의 예외 상황을 일으키는 표현이 들어있어도 유효한 프로그램입니다. (즉 이러한 프로그램을 실행할 수 있도록 실행기를 구현하셔야 합니다.) |
|
위로 |
|
 |
|