게시판 인덱스

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

Map 스트럭쳐는 두가지 타입의 값을 가질 수 없나요?

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



가입: 2007년 10월 6일
올린 글: 25

올리기올려짐: 2007년10월7일 13:43    주제: Map 스트럭쳐는 두가지 타입의 값을 가질 수 없나요? 인용과 함께 답변

환경의 확장된 정의에 따라서 해보려니, Map 스트럭쳐가 두가지 이상의 타입을 value로 갖지 못하는 문제가 있네요.
코드:

val k = Map.empty
val k = Map.add "asdf" 1 k;;
val k = Map.add "asdf "ss" k;;

를 실행하면,
인용:

(string,string) Map.t 타입이어야 하는데 (string,int) Map.t 타입입니다.

라고 나오네요..

그렇다면, 하나는 Addr을 value 로 갖고 있는 Map과 또 다른 하나는 Procedure를 value로 갖고 있는 Map 을 만들어서 두개를 운영해야하나요? Confused
위로
사용자 정보 보기 비밀 메시지 보내기
한재화



가입: 2007년 10월 6일
올린 글: 25

올리기올려짐: 2007년10월7일 13:54    주제: 아.. 또 자답이 되었네요. 인용과 함께 답변

타입을 따로 정의하면 되는군요.

코드:

type key = KEY of string
type val = A of string | B of int
val k = Map.empty
val k = Map.add (KEY "asdf") (A 3) k
val k = Map.add (KEY "aaaa") (B "a") k


이렇게 하면 잘 되네요.. ;ㅅ;
위로
사용자 정보 보기 비밀 메시지 보내기
남기웅
손님





올리기올려짐: 2007년10월7일 16:42    주제: 인용과 함께 답변

메모리의 Map에서 procedure 를 처리하는 방법도 있군요.

저는 환경= id -> add + procedure

이렇게 되있길래 그냥 env의 Map 대상인 env_entry의 타입을

Addr of Loc.t
| Proc of procedure

이렇게 두가지로 두고 했는데요.

procedure 타입을 따로 정의한 것은 똑같은 것 같은데,

그것을 환경에서 처리할 지 메모리에서 처리할 지... 흠흠
위로
남기웅
손님





올리기올려짐: 2007년10월7일 16:45    주제: 인용과 함께 답변

아 제가 잘못 봤네요. 똑같이 환경의 Map을 바꾸는 방법이네요.
위로
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2007) 시간대: GMT + 9 시간(한국)
페이지 11

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


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