게시판 인덱스

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

적극적인 계산법에 따른 결과에 대한 질문

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



가입: 2010년 9월 20일
올린 글: 8

올리기올려짐: 2015년12월2일 15:49    주제: 적극적인 계산법에 따른 결과에 대한 질문 인용과 함께 답변

안녕하세요.
제가 적극적인 계산법을 제대로 이해하고 있는지가 궁금하여 질문글을 올리게 되었습니다.
예를 들어 다음과 같은 식에서의 처리의 경우,
(if 8 = 9 then (raise 77) else 50) handle 70 200

제 생각에는 위 결과를 magic number 201512를 출력하는 것으로 되어야 할 것 같습니다. 그러나 실제로는 50을 출력하는 것이 옳은 결과로 나옵니다. 적극적인 계산은 이와 같은 if문에서는 적용되지 않는 것인지요?

*수정하였습니다


정민종 가 2015년12월3일 22:42에 수정함, 총 1 번 수정됨
위로
사용자 정보 보기 비밀 메시지 보내기
최재승



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

올리기올려짐: 2015년12월2일 20:07    주제: 인용과 함께 답변

안녕하세요,

적극적인 계산법은 함수를 적용(apply)할 때 인자를 계산(evaluate)해서 전달하는 것이며, 이것은 if 문의 실행 의미와는 전혀 별개의 문제입니다.

일반적으로 프로그래밍 언어에서 if 문의 실행 의미는, 조건이 true일 때는 true case만 계산하고, false일 때는 false case만 계산하는 것입니다.
xexp 언어도 그러한 실행 의미를 따르고 있으며, 뼈대코드의 xexp.ml 에서 언어의 실행 의미를 확인하실 수 있습니다.

따라서 예제로 든 식의 경우, false case만 계산하여 50으로 계산되는 것이 맞습니다. (적극적/소극적 계산과 관계없이 항상)

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

조교 드림
위로
사용자 정보 보기 비밀 메시지 보내기
정민종



가입: 2010년 9월 20일
올린 글: 8

올리기올려짐: 2015년12월3일 22:44    주제: 인용과 함께 답변

답변 감사드립니다. 내용을 읽고 이해했습니다.
(글을 한 번 수정하였었는데, 다시 보니 오타가 있었네요. 논리에 맞게 재수정합니다.)
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 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