2008-06-04から1日間の記事一覧

問題 2.43

#| (flatmap (lambda (new-row) (map (lambda (rest-of-queens) (adjoin-position new-row k rest-of-queens)) (queen-cols (- k 1)))) (enumerate-interval 1 board-size)) |# ;mapの中に(queen-cols (- k 1))があるので、そこでboard-size分 ;queen-colsが…

問題 2.42

(define (accumulate op initial sequence) (if (null? sequence) initial (op (car sequence) (accumulate op initial (cdr sequence))))) (define (filter condition seq) (accumulate (lambda (x y) (if (condition x) (cons x y) y)) null seq)) (define…

問題 2.41

;問題の意味が微妙にわからないが、 ;多分、n以下の数i,j,kの和がもうひとつあたえられた数(s)と同じになればいい。 ;1≦i<j<k≦nとする。 (define (enumerate-interval x n) (if (> x n) null (cons x (enumerate-interval (+ x 1) n)))) (define (accumulate op initial sequence) (if (null? sequence) initial (op</j<k≦nとする。>…

問題 2.40

(define (unique-pairs n) (flatmap (lambda (i) (map (lambda (j) (list i j)) (enumerate-interval 1 (- i 1)))) (enumerate-interval 1 n))) (define (prime-sum-pairs n) (map make-pair-sum (filter prime-sum? (unique-pairs n))))