問題3.69 – SICP(計算機プログラムの構造と解釈)その159
2009年04月22日
問題3.69
pairs
を参考にして考える。
(define (triples s t u) (cons-stream (list (stream-car s) (stream-car t) (stream-car u)) (interleave (stream-map (lambda (x) (cons (stream-car s) x)) (pairs (stream-cdr t) (stream-cdr u))) (triples (stream-cdr s) (stream-cdr t) (stream-cdr u))))) (define triples-of-integers (triples integers integers integers)) (stream-head triples-of-integers 10) gosh> (1 1 1) (1 2 2) (2 2 2) (1 2 3) (2 3 3) (1 3 3) (3 3 3) (1 2 4) (2 3 4) (1 3 4) done
Pythagorasの三つ組みは201ページの素数を抽出する手続きを参考にして考える。
(define pythagoras (stream-filter (lambda (triple) (= (+ (square (car triple)) (square (cadr triple))) (square (caddr triple)))) triples-of-integers)) (stream-head pythagoras 5) gosh> (3 4 5) (6 8 10) (5 12 13) (9 12 15) (8 15 17) done
計算機プログラムの構造と解釈
posted with amazlet at 08.11.07
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
ピアソンエデュケーション
売り上げランキング: 6542