게시판 인덱스

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

Generalized된 타입은 결과를 어떻게 처리하나요?

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



가입: 2008년 9월 14일
올린 글: 4

올리기올려짐: 2008년12월3일 1:04    주제: Generalized된 타입은 결과를 어떻게 처리하나요? 인용과 함께 답변

예제에서

코드:
let
   val I = fn x -> x
in
   I I
end


와 같은 경우에는 타입이

('a -> 'a)

가 될 거 같은데 이런 경우는 결과를 어떻게 보여줘야하나요?

M 언어에서는 저런 타입은 정의되지 않은거 같은데...

제가 잘못 알고있는건가요?;;;;
위로
사용자 정보 보기 비밀 메시지 보내기
최원태



가입: 2006년 9월 16일
올린 글: 369

올리기올려짐: 2008년12월3일 8:53    주제: 인용과 함께 답변

지적하신대로, M언어의 정의에 의하면
위와 같은 타입 (함수타입)을 가지는 코드는 프로그램이 아닙니다.
따라서 실행기에 들어가기 전에 프로그램이 멈춰야 합니다.

예제에는 I I 뒤에 뭔가가 더 있죠?
그 부분에 의해서 정수 타입으로 결정되기 때문에
전체 코드가 프로그램입니다.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 글 올린이의 웹사이트 방문
최혁근



가입: 2008년 9월 14일
올린 글: 4

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

코드:
(* example 1: polymorphic toys *)
let
   val I = fn x => x
   val add = fn x => x.1 + x.1
   val const = fn n => 10
in
   I I;
   add(1, true) + add(2, "snu 310 fall 2006");
   const 1 + const true + const "kwangkeun yi"
end


이번 숙제 스펙에서 위와 같은 예제가 있었는데,

윗 글의 예제처럼 일반화된 타입을 리턴하게 되면 타입에러를 발생시켜야

한다는 것인가요?

그럼 테스트 할 때는 무조건 기본타입을 리턴할 수 있도록 코드에

application을 적절하게 넣어주어야 하는 것이 맞나요?
위로
사용자 정보 보기 비밀 메시지 보내기
최원태



가입: 2006년 9월 16일
올린 글: 369

올리기올려짐: 2008년12월3일 11:51    주제: 인용과 함께 답변

코드:
let
   val I = fn x -> x
in
   I I
end


가 제대로된 프로그램이 아닌 것은
리턴 타입에 일반화된 타입이 있기 때문이 아니라
리턴 타입이 함수 타입 형태이기 때문입니다.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 글 올린이의 웹사이트 방문
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2008) 시간대: GMT + 9 시간(한국)
페이지 11

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


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