게시판 인덱스

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

과제 7-1번 질문입니다.

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



가입: 2018년 9월 13일
올린 글: 10

올리기올려짐: 2018년12월13일 17:55    주제: 과제 7-1번 질문입니다. 인용과 함께 답변

(fn x => x x) (fn x => 2)

의 경우엔 타입이 어떻게 되는지 궁금합니다!
m으로 실행해 봤을때와 제 타입체커로 실행했을땐 int가 나오는데, 왜 int가 되는지 이해하기 어려워서 질문드립니다.
위로
사용자 정보 보기 비밀 메시지 보내기
배요한
Site Admin


가입: 2018년 3월 6일
올린 글: 107

올리기올려짐: 2018년12월14일 8:59    주제: 인용과 함께 답변

안녕하세요,

실제 실행 과정을 나열하자면 다음과 같이 됩니다.
(fn x => x x) (fn x => 2) --> ((fn x => 2) (fn x => 2) ) --> ((2))가 되기 때문에 결과 타입은 int가 됩니다.
하지만 let-polymorphic 타입 체커에서는 type-checking fail이 뜰겁니다.

let val f = fn x => (x x)
val g = fn x => 2 in
(f g)
end

위와같은 프로그램을 타입체크할때 수업 슬라이드를 참고하시면 fn x => x x 부분의 타입 타우를 먼저 유추하고

해당 타입에 맞도록 f를 Generalize시키게 됩니다. 이때 fn x => x x 는 simple type check로는 유추할 수 없는

식이기 때문에 이번 숙제의 스펙 상으로는 타입체크에 실패하는 프로그램입니다.

따라서 이러한 테스트케이스는 사용하지 않을 예정입니다.

TA 이동권
e-mail: dklee@ropas.snu.ac.kr

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

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


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