게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

HW7 인터벌 도메인의 경우

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4541.664A Program Analysis (Spring 2009)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
임경영



가입: 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 정의에서 다음을 적으시면 됩니다.

코드:

exception Undefined

_________________
- 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.Z 3


과 같이하여서 Zintvl.bound type의 값을 만들어 낼 수 있고,

이를 이용해서 Zintvl.make 함수를 호출한 결과 입니다.
_________________
- soon@ropas
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
임경영



가입: 2009년 4월 5일
올린 글: 27

올리기올려짐: 2009년5월15일 20:22    주제: 인용과 함께 답변

그렇군요 ^^

signature
type bound가 쓰여있어서
module 안에서는 bound에 대해서 정의를 하면 안되는 것으로 알았는데,

module안에서 다시 정의를 해도 되는 것인가봅니다.
실행시에는 어떤 정의를 따라가는지 궁금하기는 한데..
제가 테스트를 해보면서 찾아보겠습니다.

ml 문법을 정말 잘 모르겠네요 ^^;;
많은 도움과 빠르게 답변 해주신
조교님
정말 감사드립니다 Smile
위로
사용자 정보 보기 비밀 메시지 보내기
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2009년5월15일 21:50    주제: 인용과 함께 답변

인용:

signature
type bound가 쓰여있어서
module 안에서는 bound에 대해서 정의를 하면 안되는 것으로 알았는데,

module안에서 다시 정의를 해도 되는 것인가봅니다.


예를 들어서 signature MYSIG를 구현하는 모듈 MyModule은

적어도 signature에서 정의한 type과 val 들을 모두 구현하여야 합니다.

빠뜨린 것이 있다면 ocaml compiler가 그것을 지적할 것입니다.

인용:

ml 문법을 정말 잘 모르겠네요 ^^;;


OCaml 문법을 다음 사이트들을 통해서 익히고 참고하시기 바랍니다.

Tutorial : http://www.ocaml-tutorial.org/
Official Manual : http://caml.inria.fr/pub/docs/manual-ocaml/
좋은 책 : http://caml.inria.fr/pub/docs/oreilly-book/

도움이 되셨다니 다행입니다.
_________________
- soon@ropas
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4541.664A Program Analysis (Spring 2009) 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay