게시판 인덱스

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

숙제 7: 주어진 뼈대코드에서 체크 결과로 리턴해야 하는 타입이 부족합니다.

 
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2014)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
김찬민



가입: 2010년 9월 6일
올린 글: 81

올리기올려짐: 2014년12월3일 16:49    주제: 숙제 7: 주어진 뼈대코드에서 체크 결과로 리턴해야 하는 타입이 부족합니다. 인용과 함께 답변

아직 결정되지 않거나 polymorphic한 타입들에 대해 나타내어줄 타입이 뼈대코드에 없습니다. 그래서 다음과 같은 코드에 대해서는 체크가 성공적으로 되었지만 리턴할 값이 없습니다.

let rec f = fn x => f x in f 1234 end
let rec f = fn x => f x in f end
fn x => x
fn x => 1
let val f = fn x => x in fn x => f end


OCaml에서는 아직 결정되지 않은 타입은 '_a로 나타내고 폴리모픽 타입은 'a 등으로 나타내던데 이러한 것을 나타낼만한 것들이 혹시 뼈대코드에 추가될 예정인가요?

그 외에도 다음과 같은 경우에는 임의의 타입이 허용 가능한 것이 아니라 일부 타입만 허용합니다.

fn x => x = x
fn x => write (x)

이런 경우도 다 출력할 방법이 제공 되는가요?
위로
사용자 정보 보기 비밀 메시지 보내기
강동옥



가입: 2009년 9월 18일
올린 글: 602

올리기올려짐: 2014년12월4일 12:01    주제: 인용과 함께 답변

최종타입은 뼈대코드에 나와있는 타입 하에서 출력해주세요.
위로
사용자 정보 보기 비밀 메시지 보내기
김찬민



가입: 2010년 9월 6일
올린 글: 81

올리기올려짐: 2014년12월4일 12:21    주제: 인용과 함께 답변

저 예제들은 뼈대코드에 나와있는 타입 하에서 출력하는 것이 불가능해 보입니다.

가능한가요?
위로
사용자 정보 보기 비밀 메시지 보내기
강동옥



가입: 2009년 9월 18일
올린 글: 602

올리기올려짐: 2014년12월4일 12:24    주제: 인용과 함께 답변

최종타입하에 출력할수 없다면 타입체킹 실패로 결론내시면 됩니다.
위로
사용자 정보 보기 비밀 메시지 보내기
김찬민



가입: 2010년 9월 6일
올린 글: 81

올리기올려짐: 2014년12월4일 12:25    주제: 인용과 함께 답변

감사합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
유경인



가입: 2013년 9월 9일
올린 글: 29

올리기올려짐: 2014년12월4일 18:50    주제: 인용과 함께 답변

fn x => x : 7-1, 7-2 모두 TypeError

let val f = fn x => x in f 1 end : 7-1, 7-2 모두 Int

let val f = fn x => x in f 1; f true end : 7-1은 TypeError, 7-2는 Bool

정리하면 이렇게 되는건가요?
위로
사용자 정보 보기 비밀 메시지 보내기
강동옥



가입: 2009년 9월 18일
올린 글: 602

올리기올려짐: 2014년12월5일 11:32    주제: 인용과 함께 답변

네 맞습니다. Smile
위로
사용자 정보 보기 비밀 메시지 보내기
방정호



가입: 2011년 9월 19일
올린 글: 40

올리기올려짐: 2014년12월5일 18:49    주제: 인용과 함께 답변

유경인 씀:
fn x => x : 7-1, 7-2 모두 TypeError

let val f = fn x => x in f 1 end : 7-1, 7-2 모두 Int

let val f = fn x => x in f 1; f true end : 7-1은 TypeError, 7-2는 Bool

정리하면 이렇게 되는건가요?


let val f = fn x => x in 1 end

이것은 어떻게 처리를 해야 하나요?
전체 프로그램의 타입은 int인데,
중간에 f의 타입은 결정을 못한다면요.
위로
사용자 정보 보기 비밀 메시지 보내기
강동옥



가입: 2009년 9월 18일
올린 글: 602

올리기올려짐: 2014년12월7일 19:52    주제: 인용과 함께 답변

sound한 타입시스템의 정의에 맞도록 처리하시면 됩니다.

실제 실행시 중도에 에러로 멈추는 경우는 무조건 잡아주는것이 sound한 타입시스템입니다.

이런 조건하에 최대한 정확할수록 좋으므로 int를 내줄 수 있다면 좋겠지요.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2014) 시간대: GMT + 9 시간(한국)
페이지 11

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


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