게시판 인덱스

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

5번 문제 타입이요

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



가입: 2011년 3월 9일
올린 글: 8

올리기올려짐: 2011년3월25일 16:22    주제: 5번 문제 타입이요 인용과 함께 답변

IntlistQ 정의 후 타입을 보니

val emptyQ: 'a list * 'b list
val enQ: ('a list * 'b list) * 'a list -> 'a list * 'b list
val deQ: 'a list * 'a list -> 'a * ('a list * 'a list)

로 나오는데요 element랑 queue로 나와야 하는거 아닌가요?;
대충 보니까 empty queue 를 문제에서 준것처럼 빈 리스트로 해서 타입이 정의가 안되는거 같은데 이게 맞는 표현인가요?;
위로
사용자 정보 보기 비밀 메시지 보내기
안현주



가입: 2010년 9월 6일
올린 글: 18

올리기올려짐: 2011년3월25일 17:17    주제: pdf 파일이 약간 잘못된것 같습니다. 인용과 함께 답변

예전에 프원을 들을때 모듈 타입을 작성한뒤 그 타입을 따르는 모듈을 작성할때

코드:
module type Queue =
sig
~~~
end

module IntListQ : Queue with type element = int list =
struct
~~~
end


이런 식으로 이 타입을 따른다고 알려줬었습니다.
pdf 파일에서 IntListQ 작성법이 약간 잘못된것 같네요.
위로
사용자 정보 보기 비밀 메시지 보내기
김진영_



가입: 2009년 12월 9일
올린 글: 337

올리기올려짐: 2011년3월25일 17:30    주제: 인용과 함께 답변

4쪽에 나온대로 빈 칸을 채워 IntListQ 모듈을 만들게 되면, element와 queue에 대해서 타입이 나오지 않습니다. 왜냐하면, 그러한 정보가 전혀 없기 때문입니다. Queue타입의 sig를 문제의 위쪽에 정의했어도 마찬가지입니다. IntListQ모듈이 Queue 타입을 가진다는 정보를 전혀 주지 않았습니다. 'a와 'b로 나타나는 것이 자연스럽습니다.

따라서 내가 만든 IntListQ 모듈이 정말로 위의 Queue 타입을 만족하는지를 확인하고 싶으면,
코드:
module IntListQ : Queue = struct ... end

로 정의하면 됩니다. 내가 만든 IntListQ 모듈이 Queue 타입이라는 것을 알려 주는 것입니다. 문제없이 동작한다면 Queue 타입의 모듈을 문제없이 작성한 것이 되겠죠?

하지만 이 경우 4쪽의 아래의 예시에 나온 대로 큐를 만들어나가는 것은 불가능합니다. 왜냐하면 모듈 타입 Queue는 큐의 원소 타입 element가 무엇인지를 알려주지 않기 때문입니다. 이는 우리가 모듈 IntListQ 내부에서 작성한 것으로 밖에서는 알 수 없습니다. 따라서
코드:
let yourQ = IntListQ.enQ(myQ, [1])

에서 [1]과 같은 인자를 넘길 수 없습니다.

이를 해결하려면 아래와 같이
코드:
module IntListQ : Queue with type element = int list = struct ... end

명시적으로 모듈 타입 Queue 아래에서의 타입 element가 무엇인지를 알려 주면 됩니다. 그러면 이제는 IntListQ의 element 타입이 정수 리스트라는 것을 외부에도 알리게 되는 것입니다.



요약하면,
1. 질문하신 상황에서는 element랑 queue로 나오지 않는 것이 맞고요,
2. 타입에 맞게 잘 정의했는지 확인하시려면 IntListQ : Queue 로 테스트 해 보시고요,
3. element가 정수 리스트인지 with를 이용해 알려 주시고 테스트하셔야 할 겁니다.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
안현주



가입: 2010년 9월 6일
올린 글: 18

올리기올려짐: 2011년3월25일 17:33    주제: 인용과 함께 답변

그럼 제출할 때는 ": Queue with type ~~"을 빼고 a' list 등으로 나오게해야 하나요?
위로
사용자 정보 보기 비밀 메시지 보내기
김진영_



가입: 2009년 12월 9일
올린 글: 337

올리기올려짐: 2011년3월25일 17:34    주제: 인용과 함께 답변

넣으셔도 되고 넣지 않으셔도 됩니다.

단 넣었을 때 잘 동작해야 합니다. 문제에서 Queue 타입의 모듈을 작성하라고 했었으니까요. Smile
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
안현주



가입: 2010년 9월 6일
올린 글: 18

올리기올려짐: 2011년3월25일 17:36    주제: 인용과 함께 답변

제가 글쓴이가 아닌데 계속 질문을 해버렸군요 ㅠ
감사합니다 ㅎㅎ
위로
사용자 정보 보기 비밀 메시지 보내기
성창훈



가입: 2011년 3월 9일
올린 글: 8

올리기올려짐: 2011년3월25일 18:15    주제: 인용과 함께 답변

궁금증 해결해 주셔서 감사합니당~
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Spring 2011) 시간대: GMT + 9 시간(한국)
페이지 11

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


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