問題3.71 – SICP(計算機プログラムの構造と解釈)その161
2009年04月24日
問題3.71
weighted-pairs
等の必要な手続きは問題3.70のものを使う。
;;;; Ramanujan 数を求める (define (add-cube-pairs-weight pair) (let ((i (car pair)) (j (cadr pair))) (+ (cube i) (cube j)))) (define st (weighted-pairs integers integers add-cube-pairs-weight)) (define (ramanujan s) (let ((s1car (stream-car s)) (s2car (stream-car (stream-cdr s)))) (let ((s1-weight (add-cube-pairs-weight s1car)) (s2-weight (add-cube-pairs-weight s2car))) (if (= s1-weight s2-weight) (cons-stream s1-weight (ramanujan (stream-cdr s))) (ramanujan (stream-cdr s)))))) (define ramanujan-stream (ramanujan st)) (stream-head ramanujan-stream 6) gosh> 1729 4104 13832 20683 32832 39312 done
計算機プログラムの構造と解釈
posted with amazlet at 08.11.07
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
ピアソンエデュケーション
売り上げランキング: 6542