게시판 인덱스

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

저번주 실습실 과제를 올려주시면 감사하겠습니다.

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2009)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
구상준



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

올리기올려짐: 2009년9월27일 13:37    주제: 저번주 실습실 과제를 올려주시면 감사하겠습니다. 인용과 함께 답변

제가 그날 사정이 있어서... 미처 다하지 못하고
오늘 하려고 했는데, 종이가 없네요.
누가 지난주 실습실 과제를 올려주시면
감사하게 보겠습니다.
감사합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
윤용호



가입: 2008년 9월 23일
올린 글: 257

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

1. subsets 함수
(1 2 3)에 대해서 ( () (3) (2) (2 3) (1) (1 3) (1 2) (1 2 3) ) 과 같은 subset들을 뽑아내는 함수 구현.
(define (subsets s)
   (if (null? s)
     (list null)
     (let ((rest (subsets (cdr s))))
       (append rest (map <??> rest)))))
<??>에 적당한 식을 채워넣습니다.


2. 다항식 계산
(...(an x + an-1)x + ... + a1)x + a0
와 같은 방식으로 다항식의 값을 구하는 (Horner's rule) 함수 작성
(define (horner-eval x coefficient-sequence)
  (foldr (lambda (this-coeff higher-terms) <??>)
  0
  coefficient-sequence))
<??>에 적당한 식을 채워넣습니다.


3. my-reverse
list를 뒤집는 함수(reverse와 같은 일을 하는) 작성


4. my-reverse를 수정하여 deep-reverse 작성.
사용 예:
(define x (list (list 1 2) (list 3 (list 4 5))))
(reverse x)
; ((3 (4 5)) (1 2))
(deep-reverse x)
; (((5 4) 3) (2 1))

즉, 리스트 안의 리스트 안의 리스트 안의 리스트 ..... 까지 모두 뒤집습니다.


5. my-filter 함수 작성.
filter 함수와 같은 일을 하는 함수 my-filter를 작성합니다.
사용 예:
(my-filter (list 1 3 2 4) (lambda (x) (> x 2)))
; (3 4)

(my-filter (list 1 3 2 4) (lambda (x) (= x 1)))
; (1)

타입은 ('a list * ('a -> bool)) -> 'a list
임의의 리스트와 그 타입의 값을 받아 bool을 만들어내는 함수를 받아
리스트에서 함수의 적용값이 true인 것만 모은 리스트를 생성합니다.


6. my-append 함수 작성
append 함수와 같은 일을 하는 함수를 작성합니다. (두 리스트의 연결)


7. + * list 같은 함수들처럼 임의의 수의 argument를 받는 함수를 직접 만들 수 있습니다.
(define f x y . z) <body>)
이 함수 f는 최소한 2개,,, 2개 이상의 argument를 받아야 하며, 이 때 첫번째 argument는 x, 두번째 argument는 y, 그 이후의 argument들은 모두 순서대로 list 형태로 z에 들어갑니다. (즉 z는 항상 리스트이고 만약 해당하는 최소의 argument가 넘어오면 빈 리스트가 됩니다)
(f 1 2 3 4 5 6) 과 같이 표현하면 x는 1 y는 2 z는 (3 4 5 6)

(define (g . w) <body>)
이렇게 정의된 g는 argument를 안받을 수도 있습니다. ((g)로 호출)
(g 1 2 3 4 5) 하면 w는 (1 2 3 4 5)

위의 방식을 이용해서 same-parity 함수 작성.
하나 이상의 수를 받아 첫번째와 같은 parity(짝/홀)인 수들의 리스트를 만들어냅니다.
(same-parity 1 2 3 4 5 6 7) 로 호출하면 (1 3 5 7)
(same-parity 2 3 4 5 6 7)로 호출하면 (2 4 6)

append-many 함수도 작성.
임의의 수의 리스트들을 넘겨받아 그들을 줄줄이 이어줍니다.
(append-many '(1 2 3) '(4 5 6) '(7 8 9)) 하면
(1 2 3 4 5 6 7 8 9)가 만들어집니다.
위로
사용자 정보 보기 비밀 메시지 보내기
장수원



가입: 2008년 9월 26일
올린 글: 167

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

http://ropas.snu.ac.kr/~ta/4190.210/09/docs/lab/ex3.pdf 에 올려두었습니다.

윤용호: 제가 글을 늦게 확인하는 바람에 고생하셨네요. 죄송합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
구상준



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

올리기올려짐: 2009년9월27일 21:06    주제: 감사합니다. 인용과 함께 답변

정말 윤용호님과 조교님들께는 감사드립니다. >ㅂ<
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2009) 시간대: GMT + 9 시간(한국)
페이지 11

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


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