| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
shwlinux
가입: 2011년 9월 26일 올린 글: 39
|
올려짐: 2011년11월18일 21:27 주제: 시그네쳐에 대해 잘 모르겠어요.. |
|
|
module type SKI =
sig
type liquid = S
| K
| I
| V of string (* variable *)
| M of liquid * liquid (* mix of two liquids *)
val react: liquid -> liquid
val pprint: liquid -> unit
end
이렇게 정의 한 뒤에
module SkiLiquid : SKI = struct ....
이라고 한 후에 위에 정의된 타입을 쓰려고 하니 안되네요
위에 시그네쳐에 명시된 타입은 스트럭트에서 유효하지 않은건가요?
다시 스트럭트에서 선언을 다시 해주어야하나요? |
|
| 위로 |
|
 |
김상우
가입: 2011년 9월 10일 올린 글: 50
|
올려짐: 2011년11월18일 21:41 주제: 아마도 |
|
|
다시 선언을 해줘야 할거에요
sig에 있는게 하나라도 빠지거나 잘못되면 mismatch라고 뜰걸요? |
|
| 위로 |
|
 |
shwlinux
가입: 2011년 9월 26일 올린 글: 39
|
올려짐: 2011년11월18일 21:42 주제: 음 |
|
|
그러면 과제에서는 굳이 시그네쳐 안에 타입을 완전히 다 명시한 것은
조교님께서 타입이 어떻게 구성되는지 알려주기 위해서
일부러 적어놓으신거군요?!
그렇다면 실제로 과제를 할 때는
시그네쳐안에 type liquid 까지만 적어놔도 상관이없는건가요? |
|
| 위로 |
|
 |
김상우
가입: 2011년 9월 10일 올린 글: 50
|
올려짐: 2011년11월18일 22:22 주제: 음.. |
|
|
그래도 문제없이 작동은 하겠습니다만...
왠지 다 써야될 것 같지 않나요?ㅋㅋ
그래서 전 썼습니다 ^ㅡ^ |
|
| 위로 |
|
 |
김태훈10
가입: 2011년 10월 15일 올린 글: 21
|
올려짐: 2011년11월18일 23:29 주제: |
|
|
| 저도 다썻습니다 ㅎㅎㅋ |
|
| 위로 |
|
 |
엄태건
가입: 2011년 9월 27일 올린 글: 50
|
올려짐: 2011년11월19일 1:49 주제: |
|
|
type liquid 까지만 써주면
module 외부에선 liquid 타입을 만드는 방법을 모르기 때문에
liquid 타입을 만들 수 없을거에요.
만일 외부에서 liquid 타입을 만드는 방법을 몰라도 되는 경우에는
(예를 들어, module 내의 함수를 통해서 liquid 타입을 만드는 경우)
굳이 적어줄 필요 없이 type liquid만 적어줘두 되겠죠.
module 외부에서 liquid 타입을 어떻게 만드는 지를 알려주기 위해
sig에 써주는 거 같습니당 |
|
| 위로 |
|
 |
shwlinux
가입: 2011년 9월 26일 올린 글: 39
|
올려짐: 2011년11월19일 3:29 주제: 그렇군요 |
|
|
성심성의껏 답변해주신 많은 학우님들 감사합니다  |
|
| 위로 |
|
 |
|