게시판 인덱스

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

과제 6-2 질문입니다

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



가입: 2015년 9월 3일
올린 글: 3

올리기올려짐: 2015년11월25일 4:51    주제: 과제 6-2 질문입니다 인용과 함께 답변

과제를 수정하다가 늦게 발견한 부분인데, 현재 주어진 M0 실행기가
(rec test x =>
ifzero x then 0 else (test x)
)
0
는 제대로 수행하지만, 같은 결과를 내야 하는 다른 모양의 함수
(rec test x =>
(fn y => ifzero x then 0 else y) (test x)
)
0
는 제대로 수행하지 못하고 무한루프에 빠집니다.

이 부분은 의도된 부분인가요?
위로
사용자 정보 보기 비밀 메시지 보내기
조상우15



가입: 2015년 9월 7일
올린 글: 27

올리기올려짐: 2015년11월25일 11:48    주제: 인용과 함께 답변

제가 생각하기에 두 함수는 다른 것 같아요..

예를 들어 첫 번째 함수에 0을 application 하면 제대로 0이 나오지만
두 번째 함수에 0 을 적용하면 계속 (test 0) 만 호출돼서 제대로 끝나는 상황이 안 오지 않나요?
의도하신대로 첫 번째 함수랑 두 번째 함수가 같은 결과를 내려면 두 번째 함수코드가
코드:

(rec test x => (fn y => ifzero x then 0 else y) (x)) 0

이 되어야 할 것 같아요..

근데 위와 같이 수정해도
syntax에서 재귀를 제한했기 때문에
첫번째 함수는 0이 아닌 값을 application하면 무한루프에 빠지지만
두번째 함수는
코드:

(fn y => ifzero x then 0 else y)

에서 0이 아닌 경우에 스스로를 호출하는게 아니라 y값을 리턴하기 때문에
두 함수가 같다고 보기 어려울 것 같습니다


조상우15 가 2015년11월26일 0:16에 수정함, 총 1 번 수정됨
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
최재승



가입: 2012년 9월 10일
올린 글: 211

올리기올려짐: 2015년11월25일 14:17    주제: 인용과 함께 답변

과제 6 스펙문서에 명시되어 있듯이 mexp는 적극적인 (eager-evaluation) 프로그래밍 언어입니다. 즉, 함수를 적용(application)할 때 인자를 계산하여 바인딩한 다음 함수 몸체를 계산합니다.

따라서 두 번째 코드에서, 실행기는 인자인 "(test x)"를 계산하여 바인딩한 다음 함수 몸체의 ifzero 문을 계산하게 되므로 무한 루프에 빠지는 것이 맞습니다. (두 프로그램은 같은 결과를 내야 한다고 볼 수 없습니다.)

교재 (http://ropas.snu.ac.kr/~kwang/4190.310/11/pl-book-draft.pdf) 의 136-138쪽에 eager evaluation과 lazy evaluation에 대한 내용이 있으므로 참고하시기 바랍니다.

조교 드림
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2015) 시간대: GMT + 9 시간(한국)
페이지 11

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


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