이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
윤휴빈 손님
|
올려짐: 2005년9월29일 11:21 주제: 6번 문제에서 큐가 abstr.. |
|
|
코드: | structure _정수리스트_큐 : _큐_ where type 원소 = int list =
struct
type 원소 = int list and 큐 = _이건큐 of 원소 list * 원소 list
exception _빈큐라고요
...
|
이런 식으로 타입을 만들어서 돌리는데 결과값에 구체적인 값이 안 나오고
코드: | structure _정수리스트_큐:
sig
type 큐
type 원소 = int list
val 넣기: 큐 * int list -> 큐
val 빈큐: 큐
val _빈큐라고요: exn
val 합하기: 큐 * 큐 -> 큐
val 빼기: 큐 -> int list * 큐
end
val q1: _정수리스트_큐.큐 = <abstr>
val q2: _정수리스트_큐.큐 = <abstr>
val q3: _정수리스트_큐.큐 = <abstr>
val q4: _정수리스트_큐.큐 = <abstr>
val e1: int list = [1] |
이런 식으로 전부 <abstr>이 붙어서 나오네요.. 이것저것 뜯어고쳐 보고는 있는데 계속 <abstr>이라고만 나오니 좀 답답합니다. 위쪽 모듈에 큐가 타입이 없는 것처럼 나오는게 문제인 거 같은데 어떻게 해결할 방법이 없을까요. |
|
위로 |
|
 |
현경렬

가입: 2005년 9월 28일 올린 글: 19 위치: 스쿨
|
올려짐: 2005년9월29일 11:36 주제: Re: 6번 문제에서 큐가 abstr.. |
|
|
윤휴빈 씀: | 코드: | structure _정수리스트_큐 : _큐_ where type 원소 = int list =
struct
type 원소 = int list and 큐 = _이건큐 of 원소 list * 원소 list
exception _빈큐라고요
...
|
이런 식으로 타입을 만들어서 돌리는데 결과값에 구체적인 값이 안 나오고
코드: | structure _정수리스트_큐:
sig
type 큐
type 원소 = int list
val 넣기: 큐 * int list -> 큐
val 빈큐: 큐
val _빈큐라고요: exn
val 합하기: 큐 * 큐 -> 큐
val 빼기: 큐 -> int list * 큐
end
val q1: _정수리스트_큐.큐 = <abstr>
val q2: _정수리스트_큐.큐 = <abstr>
val q3: _정수리스트_큐.큐 = <abstr>
val q4: _정수리스트_큐.큐 = <abstr>
val e1: int list = [1] |
이런 식으로 전부 <abstr>이 붙어서 나오네요.. 이것저것 뜯어고쳐 보고는 있는데 계속 <abstr>이라고만 나오니 좀 답답합니다. 위쪽 모듈에 큐가 타입이 없는 것처럼 나오는게 문제인 거 같은데 어떻게 해결할 방법이 없을까요. |
우리는 _정수리스트_큐의 내부가 어떻게 구현되었는지 모르기 때문에 <abstr>라고 나오는 게 아닐까요(우리가 아는 것은 원소 type과, 넣기를 했을 때 큐가 나오고, 빼기를 했을 때 큐와 원소 하나가 나온다는 것뿐입니다.)
structure 에서 ``:_큐_'' 를 제외하면 structure가 완전히 공개되기 때문에 내부를 확인할 수 있을 거에요. _________________ Programming Rumble |
|
위로 |
|
 |
윤휴빈 손님
|
올려짐: 2005년9월29일 11:47 주제: Re: 6번 문제에서 큐가 abstr.. |
|
|
답변 감사합니다.
이렇게도 해 봤다고 생각했는데 노트패드로 작업하다보니 -_-;
파일명에 txt가 붙어서 안 돌아갔었네요..
근데 별다른 출력 예시가 없어서 그런데 그냥 abstr한 상태로 제출해도 될련지 조교님께 질문 드리겠습니다. _큐_를 일부러 쓴다는 건 그런 의미가 아닌가 싶은데요.. |
|
위로 |
|
 |
김덕환
가입: 2005년 8월 29일 올린 글: 190
|
|
위로 |
|
 |
이용석
가입: 2005년 9월 29일 올린 글: 6
|
올려짐: 2005년9월29일 14:39 주제: |
|
|
조교님께는 죄송한 질문이지만... 그러니까 한 마디로
(제가 이해를 잘 못해서.. )
" _큐_ 시그니처를 상속해서 abstract 하게 구현해서 숙제 제출해도 되나요? "
안된다고 하시면 얼른 수정해야 하거든요... |
|
위로 |
|
 |
김덕환
가입: 2005년 8월 29일 올린 글: 190
|
올려짐: 2005년9월29일 15:13 주제: |
|
|
이용석 씀: |
" _큐_ 시그니처를 상속해서 abstract 하게 구현해서 숙제 제출해도 되나요? "
|
https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=31에서 관련 부분을 옮깁니다.
인용: |
숙제는 다음처럼 문제에 나와 있는 대로 하시면 되겠습니다.
코드: |
structure _정수리스트_큐 = ...
|
다만, 다음처럼 type constraint를 사용할 수도 있다는 것을 알아두시면 좋겠습니다.
코드: |
structure _정수리스트_큐 : _큐_ where type 원소 = int list = ...
|
|
단지, "structure _정수리스트_큐 = ..."를 써서 큐의 타입 정보를 외부로 공개할 때는 문제에 다음과 같이 나와있으므로
엄격하게 따지자면 큐의 타입을 다음처럼 선언하는 것이 맞겠지요.
코드: |
type 큐 = 원소 list * 원소 list
|
그러나, 문제 자체가 모듈 타입(signature)를 사용해서 인터페이스와 구현의 분리 혹은 information hiding을 할 수 있다는 것을 알려주기 위한 것이므로, 채점할 때는 원소를 넣었다 빼었다 혹은 큐 두 개를 합했다 하면서 원소가 큐의 정의에 맞는 순서로 나오는지만 살펴볼 생각입니다. _________________ TheyAreAsSmartAsYouAre |
|
위로 |
|
 |
|