게시판 인덱스

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

숙제 7에 대해서 알려드립니다.

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4541.664A Program Analysis (Spring 2009)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2009년5월8일 16:13    주제: 숙제 7에 대해서 알려드립니다. 인용과 함께 답변

숙제 7이 공지되었습니다.
http://ropas.snu.ac.kr/~kwang/4541.664A/09/hw7.pdf

기한은 5월 14일 목요일 자정까지 입니다.
_________________
- soon@ropas


공순호 가 2009년5월19일 22:51에 수정함, 총 1 번 수정됨
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
강지훈



가입: 2008년 9월 2일
올린 글: 291
위치: 302동 312-2호

올리기올려짐: 2009년5월9일 5:05    주제: FUNCTION_DOMAIN.map의 type 인용과 함께 답변

89
90 module type FUNCTION_DOMAIN = sig
91 include DOMAIN
92 type lelt
93 type relt
94 val image: elt -> lelt -> relt
95 val update: elt -> lelt -> relt -> elt
96 val map: (lelt -> relt -> lelt -> relt) -> elt -> elt
97 val fold: (lelt -> relt -> 'a -> 'a) -> elt -> 'a -> 'a
98 val make: (lelt * relt) list -> elt
99 end


에서 type이 (lelt -> relt -> lelt -> relt) -> elt -> elt
인데요,, (lelt -> relt -> relt) -> elt -> elt 정도가 적당하지 않을까요?

아니면 map의 의미를 조금만 더 설명해 주셨으면 좋겠습니다 ^^

--

그리고
75
76 module type POWERSET_DOMAIN = sig
77 include DOMAIN
78 type atom
79 val union: elt -> elt -> elt
80 val inter: elt -> elt -> elt
81 val minus: elt -> elt -> elt
82 val diff: elt -> elt -> elt
83 val remove: atom -> elt -> elt
84 val mem: atom -> elt -> bool
85 val map: (atom -> atom) -> elt -> elt
86 val fold: (atom -> 'a -> 'a) -> elt -> 'a -> 'a
87 val make: atom list -> elt
88 end
89

에서
val minus: elt -> elt -> elt
val diff: elt -> elt -> elt
가 있는데요, 둘은 같은 의미인가요?
_________________
강지훈
프로그래밍의 원리 조교

Jeehoon Kang
TA, Principles of Programming
위로
사용자 정보 보기 비밀 메시지 보내기
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2009년5월9일 9:10    주제: 인용과 함께 답변

1. FUNCTION_DOMAIN에서 fold의 의미

http://caml.inria.fr/pub/docs/manual-ocaml/libref/Map.Make.html

의 fold의 의미와 동일한 것입니다.

인용해드리면

인용:

val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b

fold f m a computes (f kN dN ... (f k1 d1 a)...), where k1 ... kN are the keys of all bindings in m (in increasing order), and d1 ... dN are the associated data.


물론, 숙제에서는 Map이 Elt로 한번 감싸져있기 때문에 조금 다른 부분이 있습니다.

하지만, 이해하는데에는 어려움이 없을 것으로 생각합니다.


2. Powetset에서의 minus와 diff의 의미

교수님께 여쭤보고 답드리겠습니다.
_________________
- soon@ropas
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
이광근



가입: 2005년 8월 29일
올린 글: 68

올리기올려짐: 2009년5월9일 12:48    주제: 인용과 함께 답변

공순호 씀:
1. FUNCTION_DOMAIN에서 fold의 의미

http://caml.inria.fr/pub/docs/manual-ocaml/libref/Map.Make.html

의 fold의 의미와 동일한 것입니다.

인용해드리면

인용:

val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b

fold f m a computes (f kN dN ... (f k1 d1 a)...), where k1 ... kN are the keys of all bindings in m (in increasing order), and d1 ... dN are the associated data.


물론, 숙제에서는 Map이 Elt로 한번 감싸져있기 때문에 조금 다른 부분이 있습니다.

하지만, 이해하는데에는 어려움이 없을 것으로 생각합니다.


2. Powetset에서의 minus와 diff의 의미

교수님께 여쭤보고 답드리겠습니다.


1. map은 fold와 다릅니다.

map: (entry -> entry) -> entry collection -> entry collection

이고 function에서 entry 는 input, output의 쌍
(curried 로 표현된 정의에서 "lelt -> relt")

참고로 fold는

fold: (entry -> result -> result) -> entry collection -> result -> result
----------------- ^지금까지 축적된 결과
----------------------------^더 축적된 결과
---------------------------------------------------------------^초기결과
---------------------------------------------------------------------------^최종결과

2. minus는 필요없습니다(실수). diff만 있습니다.


이광근 가 2009년5월9일 12:52에 수정함, 총 1 번 수정됨
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 글 올린이의 웹사이트 방문
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2009년5월9일 12:50    주제: 인용과 함께 답변

강지훈 학생이 map을 질문했는데, 제가 fold를 답했군요. 부끄럽습니다.
_________________
- soon@ropas
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
이광근



가입: 2005년 8월 29일
올린 글: 68

올리기올려짐: 2009년5월9일 18:04    주제: 인용과 함께 답변

이광근 씀:

1. map은 fold와 다릅니다.

map: (entry -> entry) -> entry collection -> entry collection

이고 function에서 entry 는 input, output의 쌍
(curried 로 표현된 정의에서 "lelt -> relt")


따라서

map: (lelt * relt -> lelt * relt) -> elt -> elt

입니다.

이를 커리(curried)꼴로(->로 늘어놓아) 다시쓰면

map: (let -> relt -> lelt * relt) -> elt -> elt

입니다.

이전 hw7의 다음이 아닙니다:

map: (let -> relt -> letl -> relt) -> elt -> elt

hw7(5/9 17:50이후 버전)을 사용하세요.

-K
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 글 올린이의 웹사이트 방문
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4541.664A Program Analysis (Spring 2009) 시간대: GMT + 9 시간(한국)
페이지 11

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


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