|
|
이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
김재윤
가입: 2017년 9월 13일 올린 글: 10
|
올려짐: 2017년10월13일 17:41 주제: 숙제 3 ocaml 문법에 대한 질문입니다. |
|
|
k.ml skeleton code를 보면, memory와 env의 정의에 'a를 많이 쓰는데요,
튜토리얼 PPT에 보면 'a가 polymorphic type을 나타낸다고 되어 있는데, 코드 상에서 익숙치 않은 부분이 있어서 몇 가지 질문드립니다.
1.
module type MEM을 보면
type 'a t
val load : 'a t -> Loc.t -> 'a
부분의 주석을 보면 'a t는 memory의 type이고, 'a는 value의 type인 것 같은데요,
'a 와 'a t 의 차이가 무엇인가요?
2.
Module type MEM에서
Loc.t는 다른 언어들처럼 argument의 t property를 의미하는 것인가요?
3.
module type ENV에서
type ('a, 'b) t 의 의미가 polymorphic pair인가요? |
|
위로 |
|
|
김성국17
가입: 2017년 9월 15일 올린 글: 16
|
올려짐: 2017년10월14일 13:40 주제: |
|
|
1)
'a, 'b, 'c 등등은 임의의 타입을 나타낼 수 있는 타입인자들입니다.
t라는 타입을 정의할 때 그 안에 타입인자가 사용된다면,
그 타입인자들(예: 'a)을 타입 앞에 명시적으로 써줘야 합니다.
그리하여 type 'a t라는 표현은, 모듈에 t라는 타입이 있는데 그것은 'a라는 타입인자를 사용하고 있다라는 의미가 됩니다.
type 'a라고 쓴다거나, type t = .. 'a..라고 쓰는 것은 모두 오류입니다.
'a t라는 타입이 있으면 int t, string t, 'c t 등을 만들 수 있습니다.
대표적인 예로, 'a list가 있겠네요. int list, string list.
2)
Loc이라는 모듈에서 t라고 정의해놓은 것을 의미합니다.
3)
1)과 마찬가지로 타입인자 'a와 'b를 사용하는 타입 t를 의미합니다. |
|
위로 |
|
|
김재윤
가입: 2017년 9월 13일 올린 글: 10
|
올려짐: 2017년10월15일 23:00 주제: |
|
|
감사합니다! |
|
위로 |
|
|
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|