アットウィキロゴ
S.O.W - SICPお勉強Wiki
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

S.O.W - SICPお勉強Wiki

Exercises 2.2.2

最終更新:

jout

- view
メンバー限定 登録/ログイン

Chapter 2.2.2



Exercise 2.24

(define ans (cons 1 (cons (cons 2 (cons (cons 3 (cons 4 '())) '())) '())))
 

Exercise 2.25

(define (pick x ls)
  (define (sub x ls)
    (if (null? ls) false
        (if (pair? ls) (pick x ls) (if (= x ls) true false))))
  (if (not (sub x (car ls))) (sub x (cdr ls)) true))
 

Exercise 2.26

> (define x (list 1 2 3))
> (define y (list 4 5 6))
> (append x y)
(1 2 3 4 5 6)
> (cons x y)
((1 2 3) 4 5 6)
> (list x y)
((1 2 3) (4 5 6))
 

Exercise 2.27

(define (rev ls)
  (define (it ls re)
    (if (null? ls) re (it (cdr ls) (cons (car ls) re))))
  (it ls '()))
(define (d-rev ls)
  (define (it ls re)
    (if (null? ls) re
        (if (pair? (car ls))
            (it (cdr ls) (cons (d-rev (car ls)) re))
            (it (cdr ls) (cons (car ls) re)))))
  (it ls '()))
 

Exercise 2.28

(define (fringe ls)
  (if (null? ls)
      '()
      (if (pair? (car ls))
          (fringe (append (car ls) (fringe (cdr ls))))
          (cons (car ls) (fringe (cdr ls))))))
 

Exercise 2.29


Exercise 2.30

(define (square-tree tree)
  (define (square x) (* x x))
  (map (lambda (sub)
         (if (pair? sub)
             (square-tree sub)
             (square sub)))
       tree))
 

Exercise 2.31

(define (tree-map f tree)
  (map (lambda (x)
         (if (pair? x)
             (tree-map f x)
             (f x)))
       tree))
 

Exercise 2.32

(define (subsets s)
  (define (g x) (cons (car s) x))
  (if (null? s)
      (list '())
      (let ((rest (subsets (cdr s))))
        (append rest (map g rest)))))
 
記事メニュー
最近更新されたスレッド
人気記事ランキング
ウィキ募集バナー