 |
|
이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
박제상
가입: 2018년 9월 18일 올린 글: 12
|
올려짐: 2018년9월20일 1:19 주제: 2-4과제질문입니다. |
|
|
안녕하세요 조교님. 밤 늦게까지 수고하십니다. 2-4번 과제를 하다가 궁금한 점이 몇가지 생겼습니다.
1. 큐에 저장되어 있는 방식은 상관이 없나요?
예를 들어 큐에 저장을 할때 ([[1]; [2]] , [[4]; [3]]) 과 ([[1]] , [[4]; [3] ; [2]])은 같은 건가요?
2. 숙제에 적혀있는 함수의 양식을 맞춰야하나요?
숙제에는
인용: | type element = int list
type queue = ...
exception EMPTY Q
let emptyQ = ...
let enQ = ...
let deQ = ... |
로 적혀있는데 함수를 표현하는데 있어서
인용: | let enQ: queue * element -> queue = fun (x1, x2) |
양식이 확실하고 편하여 (무엇보다 이렇게 해야 에러가 안나더라고요) 이렇게 쓸려고 합니다. 괜찮나요?
3. 가장 궁금한 사항인데
코딩을 할때 모듈검사를 바로 하기위히여 struct module 시작부분을
인용: | module IntListQ : Queue = |
로 시작을 했습니다. 하지만 이렇게 코드를 짰을 경우
인용: | let yourQ = IntListQ.enQ(myQ, [1]) |
부분에서
인용: | This expression has type 'a list
but an expression was expected of type IntListQ.element | 의 문제가 떴습니다. 물론 struct module부분을 원래대로 돌려놔서 잘 작동하긴 하지만 : Queue부분이 어떻게 결과에 영향을 미쳤는지 알고 싶습니다. |
|
위로 |
|
 |
배요한 Site Admin
가입: 2018년 3월 6일 올린 글: 107
|
올려짐: 2018년9월20일 13:47 주제: |
|
|
안녕하세요, 박제상 학생.
1.
인용: | 예를 들어 큐에 저장을 할때 ([[1]; [2]] , [[4]; [3]]) 과 ([[1]] , [[4]; [3] ; [2]])은 같은 건가요? |
아니요. 숙제에서 다음과 같이 설명되어 있는 부분을 다시 읽으시면 좋겠습니다.
인용: | 한 원소 x를 삼키면 새로운 큐는 다음이 됩니다... |
2. 인용: | let enQ: queue * element -> queue = fun (x1, x2) |
괜찮습니다. 이는 다음 글에서도 답변을 해 드렸습니다. (https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=6593)
3. 인용: | struct module부분을 원래대로 돌려놔서 잘 작동하긴 하지만 : Queue부분이 어떻게 결과에 영향을 미쳤는지 알고 싶습니다.
|
이 에러가 나는 이유는, IntListQ를 정의할 때 Queue 라는 시그네쳐를 썼는데, 이 시그네처에서 elt은 abstract type으로 IntListQ의 elt 타입 정보가 가려져서 일어나는 에러입니다. 자세한 설명은 아래 글을 읽어보시면 됩니다. https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=6589
숙제 공지사항에도 말씀드렸던거와 같이, IntListQ : Queue 을 한 이유는 제상 학생이 구현한 IntListQ가 Queue 모듈 타입을 만족하는지 확인 하는 용도 입니다. 제출하실때는 :Queue를 빼고 제출하시면 됩니다.
감사합니다.
TA 이동권
e-mail: dklee@ropas.snu.ac.kr
TA 배요한
e-mail: yhbae@ropas.snu.ac.kr |
|
위로 |
|
 |
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|