| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
공순호
가입: 2005년 9월 29일 올린 글: 363 위치: 302동 312-2호
|
|
| 위로 |
|
 |
공순호
가입: 2005년 9월 29일 올린 글: 363 위치: 302동 312-2호
|
올려짐: 2009년3월28일 10:28 주제: |
|
|
제출하실 것들을 알려드립니다.
* module Fix의 정의를 제출하시기 바랍니다.
제출하지 않아야할 것들도 있습니다.
* signature CPO, FIX는 제외하시기 바랍니다. _________________ - soon@ropas |
|
| 위로 |
|
 |
공순호
가입: 2005년 9월 29일 올린 글: 363 위치: 302동 312-2호
|
올려짐: 2009년3월28일 10:33 주제: |
|
|
문제 3번에 여러분이 제출하실 Fix가 다음과 같이 되어있습니다.
| 코드: |
module Fix(D: CPO): FIX =
struct
type t = D.t
let fix = ...
end
|
제가 OCaml Module Tutorial 때에 말씀드린 것과 같이
functor Fix가 만들어내는 structure의 signature는 FIX와 동일합니다.
참고로 FIX는 아래와 같습니다.
| 코드: |
module type FIX =
sig
type t
val fix: (t -> t) -> t
end
|
문제는 FIX의 signature에 type t가 abstract type으로 남아있는 것입니다.
여러분이 온전히 FIX를 정의할 수 있지만, 이것을 사용하기 위해서
fix 함수를 이용할 때에 type t를 모르기 때문에 fix 함수의 인자인 (t -> t)를 만들 수 없는 문제가 발생합니다.
이를 위해서 다음과 같이 해결하기로 합시다.
| 코드: |
module Fix(D: CPO): (FIX with type t = D.t] =
struct
type t = D.t
let fix = ...
end
|
과제 제출시에도 위와 같이 해서 제출하셔야 채점기가 작동합니다.
주의하시기 바랍니다. _________________ - soon@ropas |
|
| 위로 |
|
 |
|