게시판 인덱스

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

type matching 관련 질문 답변

 
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2014)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
강동옥



가입: 2009년 9월 18일
올린 글: 602

올리기올려짐: 2014년11월20일 13:02    주제: type matching 관련 질문 답변 인용과 함께 답변

메일로 ocaml의 type matching에 대해 질문하신 분이 있어 게시판에 공유합니다.

인용:

ocaml의 type matching 에 대해 질문이 있습니다.

Sm5의 obj 중 loc 타입에 대해서 let loc = int*int 로 되어있는데

이때 이 loc을 sonata 로 매칭시켜 주고 싶은데
| Sm5.Val(Sm5.L l1) -> Sonata.Val(Sonata.L l1)

이나

| Sm5.Val(Sm5.L(i1, i2)) -> Sonata.Val(Sonata.L(i1, i2)) 이런식으로 연결을 해주면 에러가 발생합니다.

어떻게 연결을 해주어야 하나요??


이러한 경우, 아래 코드와 같이 한 단계씩 matching을 진행해야 합니다.

코드:

...
| Sm5.Val v ->
    (match v with
    |Sm5.L loc -> Sonata.Val(Sonata.L loc)
    | ...
    )
| ...
위로
사용자 정보 보기 비밀 메시지 보내기
강동옥



가입: 2009년 9월 18일
올린 글: 602

올리기올려짐: 2014년11월20일 17:11    주제: 인용과 함께 답변

추가로 언급하자면, 해당 코드는 Sonata의 loc type이 module type에 선언만 되고 정의되어 있지 않으므로, 타입 에러를 낼 것입니다.

스펙 공지글 https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=4563 에서 해당항목을 참고하시기 바랍니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2014) 시간대: GMT + 9 시간(한국)
페이지 11

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


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