게시판 인덱스

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

Exercise 6에서 질문이 있습니다.

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2005)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
한재호
손님





올리기올려짐: 2005년9월27일 20:14    주제: Exercise 6에서 질문이 있습니다. 인용과 함께 답변

과제에 보면 모듈타입(signature)를 정의하고 이를 따르는 모듈(structure)를 이용해서 문제를 해결하라고 쓰여 있지만 실제로 예제를 보면
"structure _정수리스트_큐 : _큐_ = ..." 가 아니라
"structure _정수리스트_큐 = ..." 로 되어 있습니다.

결국 위의 signature 부분은 전혀 사용하지 않는 셈이구요.

과제의 의도가 모듈타입과 모듈을 사용하는 것도 포함되어 있다면 ": _큐_" 부분을 넣어야 하지만 그렇게 되면 마지막 사용 예제처럼
"val 니큐 = _정수리스트_큐.넣기(내큐, [1])"을 사용할 수 없습니다.
모듈 타입을 사용하면 내부 타입은 전부 abstract type으로 인식하기 때문에 "[1]"과 같은 값은 "원소"타입으로 매칭이 안되니까요.

아니면 제가 잘못 알고 있는 걸 지도 모르겠네요 -_-

여하튼 조교님의 명쾌한 답변 부탁드립니다.
위로
김덕환



가입: 2005년 8월 29일
올린 글: 190

올리기올려짐: 2005년9월28일 0:20    주제: Re: Exercise 6에서 질문이 있습니다. 인용과 함께 답변

한재호 씀:
과제에 보면 모듈타입(signature)를 정의하고 이를 따르는 모듈(structure)를 이용해서 문제를 해결하라고 쓰여 있지만 실제로 예제를 보면
"structure _정수리스트_큐 : _큐_ = ..." 가 아니라
"structure _정수리스트_큐 = ..." 로 되어 있습니다.

결국 위의 signature 부분은 전혀 사용하지 않는 셈이구요.

과제의 의도가 모듈타입과 모듈을 사용하는 것도 포함되어 있다면 ": _큐_" 부분을 넣어야 하지만 그렇게 되면 마지막 사용 예제처럼
"val 니큐 = _정수리스트_큐.넣기(내큐, [1])"을 사용할 수 없습니다.
모듈 타입을 사용하면 내부 타입은 전부 abstract type으로 인식하기 때문에 "[1]"과 같은 값은 "원소"타입으로 매칭이 안되니까요.

아니면 제가 잘못 알고 있는 걸 지도 모르겠네요 -_-

재호 님 생각이 맞습니다. 설명도 정확하시구요. Surprised 숙제는 다음처럼 문제에 나와 있는 대로 하시면 되겠습니다.
코드:

structure _정수리스트_큐 = ...

다만, 다음처럼 type constraint를 사용할 수도 있다는 것을 알아두시면 좋겠습니다.
코드:

structure _정수리스트_큐 : _큐_ where type 원소 = int list = ...

위와 같이 선언하면 _정수리스트_큐 모듈의 타입이 다음처럼 됩니다.
코드:

structure _정수리스트_큐:
  sig
    type 큐
    type 원소 = int list
    val 넣기: 큐 * int list -> 큐
    val 빈큐: 큐
    val _빈큐라고요: exn
    val 합하기: 큐 * 큐 -> 큐
    val 빼기: 큐 -> int list * 큐
  end

큐 타입이 여전히 abstract type인 것을 확인할 수 있습니다. 즉, 원소 타입의 정보만(즉, 꼭 필요한 정보만) 외부로 공개하고, 큐 타입 구현에 대한 정보는 여전히 외부로 노출되지 않습니다.
_________________
TheyAreAsSmartAsYouAre
위로
사용자 정보 보기 비밀 메시지 보내기
한재호
손님





올리기올려짐: 2005년9월28일 6:53    주제: Re: Exercise 6에서 질문이 있습니다. 인용과 함께 답변

김덕환 씀:

다만, 다음처럼 type constraint를 사용할 수도 있다는 것을 알아두시면 좋겠습니다.
코드:

structure _정수리스트_큐 : _큐_ where type 원소 = int list = ...



와우!, 저런 판타스틱한 방법이 있었군요!!!
어쩐지 모듈타입이 조금 불편할 것 같다는 생각이 들었었습니다. Very Happy
위로
손님






올리기올려짐: 2005년9월28일 10:12    주제: Re: Exercise 6에서 질문이 있습니다. 인용과 함께 답변

코드:

structure _정수리스트_큐 : _큐_ where type 원소 = int list = ...


근데 저렇게 했더니 컴파일 에러가 나는데요 - -
'문법오류: Debug:=' 라고요.
위로
김덕환



가입: 2005년 8월 29일
올린 글: 190

올리기올려짐: 2005년9월28일 11:00    주제: Re: Exercise 6에서 질문이 있습니다. 인용과 함께 답변

Anonymous 씀:
코드:

structure _정수리스트_큐 : _큐_ where type 원소 = int list = ...


근데 저렇게 했더니 컴파일 에러가 나는데요 - -
'문법오류: Debug:=' 라고요.


글쓰기 전에 이미 컴파일해서 잘 동작하는 것을 확인한 코드입니다. 오타가 없는지, 다른 부분에 문제가 있는 건 아닌지 다시 한 번 확인하시기 바랍니다.

@ 익명 글쓰기는 허용하지 않습니다.
_________________
TheyAreAsSmartAsYouAre
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2005) 시간대: GMT + 9 시간(한국)
페이지 11

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


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