홍장완
가입: 2010년 9월 15일 올린 글: 25
|
올려짐: 2010년11월24일 2:49 주제: 숙제 7 / 제가 겪은 타입 에러 |
|
|
혹시 아래와 비슷한 시행착오 겪고 계신 분들 있으신가 해서 올려봤어요..
ex2.
module StringSetQQ.enq에서
중복된 원소가 있는지 검사할 때
type element의 내용을 직접 조작하면 abstract가 깨지면서
type mismatch error가 나던데요..
element의 내용을 직접 조작하는 대신
StringSetQQ 내부에서
StringSetQ.emptyq, StringSetQ.deq를 이용, element를 분해하면서
비교하면 type mismatch error 없이 해결되네요.
ex3.
마찬가지로 집합큐에서 중복된 원소가 있는지 검사할 때
type 문제로 애먹었는데요..
type ArgTy 내부에
type t
val : check (element가 string이면 그냥 냅두고, StringQ.queue이면 분해)
를 생성하고
module StringQ = QueueMake (
struct
type t = string
let check ~~~
end
)
module StringQQ = QueueMake (
struct
type t = StringQ.queue
let check ~~~ (내부에 ex2번과 유사하게,
StringQ.emptyQ, StringQ.deq 이용해서 t를 분해)
end
)
모 이런 식으로 하면 타입 에러는 피해지네요..; |
|