게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

[숙제 7] Exercise 2 질문입니다.

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Spring 2025)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
최아윤



가입: 2025년 3월 13일
올린 글: 3

올리기올려짐: 2025년5월28일 17:57    주제: [숙제 7] Exercise 2 질문입니다. 인용과 함께 답변

안녕하세요.

숙제 7 Exercise 2의 테스트 케이스 7번과 관련하여 질문 드립니다.

(
(fn error =>
(fn x =>
ifp x then
error 1
else
error 2
) 5
) (fn x => raise x)
) handle a a

제공된 테스트 케이스를 -pp 옵션과 함께 실행하니

== Input Program ==
((fn error => (fn x => (ifp x then
(error) (1)
else
error) (2)) (5)) (fn x => raise (x))) handle a (a)
== Running Input Program with xexp Interpreter ==
1
== Running converted program with xexp Interpreter ==
Fatal error: exception Exn.Xexp.TypeError("not a function")

와 같은 오류가 발생했습니다. 그런데 위 테스트 케이스를

(
(fn error =>
(fn x =>
ifp x then
(error 1)
else
(error 2)
) 5
) (fn x => raise x)
) handle a a

로 수정하면

== Input Program ==
((fn error => (fn x =>
ifp x then
(error) (1)
else
(error) (2)) (5)) (fn x => raise (x))) handle a (a)
== Running Input Program with xexp Interpreter ==
1
== Running converted program with xexp Interpreter ==
1

이처럼 파싱된 인풋 프로그램도 다르게 나타나고, 결과도 다르게 나타났습니다.
수정하기 전의 테스트 케이스는 ifp x ~ else 부분을 파싱이 의도된 바와 다르게 이루어지는 것 같습니다. 수정 전의 케이스에서도 Running Input Program with xexp Interpreter와 동일한 결과가 출력되어야 하는지 궁금합니다.

감사합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
오규혁
Site Admin


가입: 2022년 3월 15일
올린 글: 88

올리기올려짐: 2025년5월29일 11:40    주제: 인용과 함께 답변

안녕하세요,

전자의 방식으로 작성하면 App ((if ... else error), 2) 방식으로 파싱이 됩니다.
올바른 프로그램이 아니지만(e1 e2에서 e1이 함수가 아닐 수 있음) 예외를 처리하는 과정에서 실행되는 경우입니다.
이런 경우는 테스트하지 않습니다.

잘못된 프로그램을 변환할때는 오류가 나는게 자연스러운 결과입니다.

조교드림
_________________
TA 오규혁
e-mail: ghoh@ropas.snu.ac.kr
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Spring 2025) 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay