게시판 인덱스

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

[HW2] ex4 질문입니다.

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



가입: 2021년 3월 16일
올린 글: 3

올리기올려짐: 2023년3월17일 15:58    주제: [HW2] ex4 질문입니다. 인용과 함께 답변

tree type matching 중에 질문이 생겨서 글 올립니다.

test.ml 파일에 다음과 같이 커스텀 타입을 정의하고 저장했을 때,

type tree = LEAF of item
| NODE of tree list

ocaml -init test.ml
# let x = NODE [];; 를 실행하면
val x : tree = NODE [] 를 정상적으로 출력합니다.

ocaml 이 자동으로 type matching 해서 'a list 타입인 [] 를 tree list 타입으로 인식했다고 이해하면 될까요?

또, 수업시간에 다룬 귀납적으로 정의되는 set 와 fixed point 들에 관한 논의와 연관지어서 생각해 보면 NODE [] 는 우리가 문제 조건에 따라서 construct 하고자 하는 집합과는 무관한 ocaml list 모듈의 'side-effect' 라고도 주장할 수 있을 것 같습니다.

이를 해결하기 위해서 type 정의 시에 tree list 가 non-empty 하다는 것을 명시할 수 있는 방법을 찾아봤는데, non_empty_list library 는 ocaml 버젼 문제로 사용할 수 없는 것 같습니다. 혹시 다른 좋은 구현 방법이 있을지에 대한 조교님의 생각이 궁금합니다.

긴 질문 읽어주셔서 감사합니다.
박종한 올림.
위로
사용자 정보 보기 비밀 메시지 보내기
김도형



가입: 2022년 3월 8일
올린 글: 103

올리기올려짐: 2023년3월17일 16:48    주제: 인용과 함께 답변

안녕하세요.

일단 []는 'a list type으로, 'a에는 어떤 타입이든 올 수 있습니다.

ocaml은 type check를 하는 과정에서 이 타입이 올바르게 추론될 수 있도록 'a에 타입을 대입합니다.

NODE [] 라는 값을 받았을 때, ocaml은 이것이 NODE 타입이라는 것을 알고, 이것이 tree list를 가진다는 것을 알고 있습니다.

따라서 이 때 []는 자연스럽게 tree를 원소로 갖는 리스트로 추론됩니다.

또한, 이번 과제에서는 빈 노드가 있는 상황을 전제하지 않습니다.

이에 대해선 신경 쓰지 않으셔도 됩니다.

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

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


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