이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
crash27
가입: 2009년 3월 14일 올린 글: 19
|
올려짐: 2009년3월31일 18:08 주제: Hw3 ex3 관련 |
|
|
간단한 실행의 예를 볼수 없을까요?
입력과 출력의 예만 있어도 좋을 것 같아요 ^^;;
특히
정의할 fix에서
type t= D.t 로 되는데..
이것의 정의가 어떻게 되는지 모르겠네요
CPO에 대해서 어떤식으로 입력값으로 주어야할지 감이 안오네요
예 하나만 올려주세요 ^^ |
|
위로 |
|
 |
공순호
가입: 2005년 9월 29일 올린 글: 363 위치: 302동 312-2호
|
올려짐: 2009년3월31일 19:10 주제: |
|
|
정수 집합들의 집합과, 부분집합을 이용하면 CPO를 만들 수 있습니다.
코드: |
module OrderedInt : Set.OrderedType with type t = int =
struct
type t = int
let compare = compare
end
module IntSet = Set.Make(OrderedInt)
module IntSetCPO : CPO with type t = IntSet.t =
struct
type t = IntSet.t
exception NoLUB
let order (x, y) = IntSet.subset x y
let lub (x, y) = IntSet.union x y
let bottom = IntSet.empty
end
|
이것을 Fix functor에 넣어서 나온 module을 F라고 하고
코드: |
module F = Fix(IntSetCPO)
|
정수 집합 x를 받아서 {3}과 합집합 하는 f를 정의하고
코드: |
let f x = IntSet.union x (IntSet.singleton 3)
|
그것의 fixedpoint를 구해서
코드: |
let fixedpoint = F.fix f
|
내용물을 살펴보면
코드: |
let u = IntSet.elements fixedpoint
|
그 결과는 {3}이 됩니다. _________________ - soon@ropas |
|
위로 |
|
 |
crash27
가입: 2009년 3월 14일 올린 글: 19
|
올려짐: 2009년3월31일 19:11 주제: |
|
|
감사합니다!!! |
|
위로 |
|
 |
crash27
가입: 2009년 3월 14일 올린 글: 19
|
올려짐: 2009년4월1일 16:43 주제: |
|
|
좋은 예제를 주셔서 이해하고 잘 풀고 있는 거 같습니다.
다만 문제 지문에는 exception에 대한 내용이 없는데
LUB가 없을 경우에 대해서 잘 이해가 안됩니다.
CPO module 선언시에 lub을 정의 안하게 되면 module 자체가 정의가 안되는데요..
어떤 경우가 NoLUB 과 같은 익셉션이 나오는 경우 일까요? |
|
위로 |
|
 |
공순호
가입: 2005년 9월 29일 올린 글: 363 위치: 302동 312-2호
|
올려짐: 2009년4월2일 0:46 주제: |
|
|
일단 말씀드릴 것은,
숙제에서 요구하는 것은 functor Fix를 정의하는 것이지,
CPO를 정의하라는 것이 아니라는 점입니다.
----------------------
CPO를 정의할 때에 LUB 함수를 정의해야하는데요,
임의의 CPO의 두 원소 d1, d2에 대해서 LUB (d1, d2)가 정의되지 않을 수도 있습니다.
예를 들면 자연수 집합 N에 bottom을 추가해서 lift한 CPO를 생각하면
LUB (1, 2) 는 정의되지 않습니다.
이러한 경우에는 적절한 exception을 발생시킬 필요가 있겠습니다.
----------------------
하지만 여러분이 작성한 Fix functor의 fix함수를 사용할 때에는
두 가지 가정이 있습니다.
1) CPO가 주어지고
2) f는 연속 함수 입니다.
f는 연속 함수이기 때문에 {\bot, f(\bot), f(f(\bot)), ... } 는 체인이고,
이들 사이에서는 주어진 CPO는 언제나 lub가 잘 정의되도록 되어 있습니다.
따라서 Fix의 인자로 받는 CPO의 lub를 이용할 때에 exception이 발생할 일은 없고,
이러한 것들을 염려할 필요도 없습니다. _________________ - soon@ropas |
|
위로 |
|
 |
|