게시판 인덱스

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

타입에러 관련......................

 
글 쓰기   답변 달기     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2012)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
이상아



가입: 2012년 9월 6일
올린 글: 10

올리기올려짐: 2012년11월16일 2:06    주제: 타입에러 관련...................... 인용과 함께 답변

재귀함수 구현할 때 base case와 다른 case의 타입이 달라서 계속 에러가 나는데요

다시 말하면 parenize 함수 내에서 다시 parenize를 호출할 때

호출한 게 LEAF이면 문제 없는데

NODE일 경우 기존에 의도한 LEAF의 타입이 아니라 'a 타입이라서 에러라고 뜹니다 ㅠ

예로 들어주신 NODE(NODE(LEAF Korea, LEAF Portugal), LEAF Brazil) 의 경우

첫 NODE의 두 element에 대해 각각 재귀적인 parenize를 호출했을 때

(NODE(LEAF Korea, LEAF Portugal), "Brazil") 이렇게 일단 묶고 나서 다시 NODE(LEAF Korea, LEAF Portugal)에 대해 parenize를 호출하는 게 불가능한가요?

그렇게 짜봤더니 계속 타입에러가 나서 혼란에 빠졌습니다...............
위로
사용자 정보 보기 비밀 메시지 보내기
최민아



가입: 2009년 9월 28일
올린 글: 236

올리기올려짐: 2012년11월16일 10:43    주제: 인용과 함께 답변

질문을 정확하게 이해하지 못하겠습니다.

parenize 함수는 항상 tourna 타입만을 받아야 합니다.

tourna 타입은 항상 NODE of tourna * tourna이거나 LEAF of team
이어야 합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
조동철



가입: 2011년 9월 6일
올린 글: 35

올리기올려짐: 2012년11월16일 21:42    주제: 인용과 함께 답변

질문은 잘 모르겠지만,

ocaml로 타입 에러때문에 힘들 땐, 작성하는 함수마다 함수 타입을 지정해두고 하시면,

타입 에러 버그 잡기는 쉬워요.

예를 들어, parenize 함수 같은 경우엔, 문제에서 tourna -> string으로 타입을 지정해주잖아요. 이걸 그냥 코드에 써서,

코드:
 let rec parenize : tourna -> string = fun t -> ....



이렇게 강제로 지정해주고 짜면, 타입 에러 문제 잡을 때, 꽤 편합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이상아



가입: 2012년 9월 6일
올린 글: 10

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

우와 해결했어요!!! 감사합니다~~
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2012) 시간대: GMT + 9 시간(한국)
페이지 11

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


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