이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
임경영
가입: 2009년 4월 5일 올린 글: 27
|
올려짐: 2009년5월14일 20:29 주제: HW7 인터벌 도메인의 경우 |
|
|
기존 숙제폼에서는
module IntervalDomain : PRODUCT_dOMAIN으로 되어 있었는데
지금은
module Zintvl : INTERVAL_DOMAIN이라고만 되어 있네요
어떤게 맞는건가요?
(이부분의 숙제는 다시해야 될 것 같네요ㅜㅜ)
그리고 Zintvl로 구현할경우
domain의 A:Set과 같이 Set을 받아서 인터벌로 바꾸어주어야할것 같은데
A: {1,2,3} 이면 인터벌로는 [1,2]와 같이..
지금 올라와 있는 코드를 수정해서 구현해야하는지 궁금합니다 ^^;; |
|
위로 |
|
|
공순호
가입: 2005년 9월 29일 올린 글: 363 위치: 302동 312-2호
|
올려짐: 2009년5월15일 1:52 주제: |
|
|
1.
module Zintvl : INTERVAL_DOMAIN이 맞습니다.
2.
인용: |
그리고 Zintvl로 구현할경우
domain의 A:Set과 같이 Set을 받아서 인터벌로 바꾸어주어야할것 같은데
|
signature INTERVAL_DOMAIN
을 살펴보면
코드: |
...
val make : bound -> bound -> elt
|
와 같이 되어 있습니다. 즉, interval은 두개의 bound - 상한과 하한 - 을 받아서 interval을 만들어 냅니다.
Set을 받아서 interval로 바꾸어주는 것이 아닙니다. _________________ - soon@ropas |
|
위로 |
|
|
임경영
가입: 2009년 4월 5일 올린 글: 27
|
올려짐: 2009년5월15일 19:41 주제: |
|
|
그렇군요..
기존에는 product로해서 숙제를 해놨었는데..
module Zintvl에서
bound는 어떻게 참조해야하나요?
type elt도 설정을 해야하는데 .. product의 형식으로
ELT (bound, bound)으로 잡고 싶은데
어떻게 bound를 참조하고 type을 잡아야하는지 모르겠습니다.;;
전에는 module Zintvl(구버젼)의
안에서 atom이라는 type을 잡아서 했는데
이번에는 module type INTERVAL_DOMAIN 안에 bound가 들어있는데
이 bound라는 type을 어떻게 참조해야할지 모르겠네요
마음같아서는
module Zintvl안에 그냥 bound를
type bound = Z of int | Pinfty | Ninfty로 넣어줘서 하고 싶은데
그렇게 하면 다른 분들과 달리 실행이 안될까봐 글 남겨봅니다~
그리고 example에서는 interval에 대한 것은 빠져있는데..
제가 인터벌에 대한 example을 만들어보려해도 잘 안되네요
Zintvl에 대한 example코드 하나 남겨주시면 감사드리겠습니다 ^^;; |
|
위로 |
|
|
공순호
가입: 2005년 9월 29일 올린 글: 363 위치: 302동 312-2호
|
올려짐: 2009년5월15일 19:48 주제: |
|
|
다음 코드를 실행하면
코드: |
let interval1 = Zintvl.make (Zintvl.Z 0) (Zintvl.Z 5)
|
interval1 은 [0, 5] 인 interval 값을 가지게 됩니다. _________________ - soon@ropas |
|
위로 |
|
|
임경영
가입: 2009년 4월 5일 올린 글: 27
|
올려짐: 2009년5월15일 19:51 주제: |
|
|
그리고..
exception Undefined 는 어떻게 정의를 하는건가요?;;
이부분에서 unmatch가 발생하는데..
module에서 exception을 포함시키는지 모르겠어요 ;; |
|
위로 |
|
|
임경영
가입: 2009년 4월 5일 올린 글: 27
|
올려짐: 2009년5월15일 19:52 주제: |
|
|
인용: | let interval1 = Zintvl.make (Zintvl.Z 0) (Zintvl.Z 5) |
라는 것은
Zintvl 내부의 타입은 마음대로 해도 된다는 뜻인가요 ? ^^
-무한대나 +무한대값을 넣을때도 필요할것같은데..
Zintvl.pinfnty가 바로 참조가 될까요?
임경영 가 2009년5월15일 19:58에 수정함, 총 1 번 수정됨 |
|
위로 |
|
|
공순호
가입: 2005년 9월 29일 올린 글: 363 위치: 302동 312-2호
|
올려짐: 2009년5월15일 19:54 주제: |
|
|
인용: |
exception Undefined 는 어떻게 정의를 하는건가요?;;
|
signature에서 정의되어 있는 것과 동일하게 module 정의에서 다음을 적으시면 됩니다.
_________________ - soon@ropas |
|
위로 |
|
|
공순호
가입: 2005년 9월 29일 올린 글: 363 위치: 302동 312-2호
|
올려짐: 2009년5월15일 19:58 주제: |
|
|
인용: |
인용: |
let interval1 = Zintvl.make (Zintvl.Z 0) (Zintvl.Z 5)
|
라는 것은
Zintvl 내부의 타입은 마음대로 해도 된다는 뜻인가요 ? ^^
|
module Zintvl은 INTERVAL_DOMAIN signature를 구현합니다.
INTERVAL_DOMAIN signature에 보면 type bound가 선언되어 있으므로
외부에서 이를 접근할 수 있습니다.
과 같이하여서 Zintvl.bound type의 값을 만들어 낼 수 있고,
이를 이용해서 Zintvl.make 함수를 호출한 결과 입니다. _________________ - soon@ropas |
|
위로 |
|
|
임경영
가입: 2009년 4월 5일 올린 글: 27
|
올려짐: 2009년5월15일 20:22 주제: |
|
|
그렇군요 ^^
signature
type bound가 쓰여있어서
module 안에서는 bound에 대해서 정의를 하면 안되는 것으로 알았는데,
module안에서 다시 정의를 해도 되는 것인가봅니다.
실행시에는 어떤 정의를 따라가는지 궁금하기는 한데..
제가 테스트를 해보면서 찾아보겠습니다.
ml 문법을 정말 잘 모르겠네요 ^^;;
많은 도움과 빠르게 답변 해주신
조교님
정말 감사드립니다 |
|
위로 |
|
|
공순호
가입: 2005년 9월 29일 올린 글: 363 위치: 302동 312-2호
|
|
위로 |
|
|
|