【SICP练习】141 练习3.72

来源:互联网 发布:qq的网络状态是否准确 编辑:程序博客网 时间:2024/05/22 12:15

练习3-72

原文

Exercise 3.72. In a similar way to exercise 3.71 generate a stream of all numbers that can be written as the sum of two squares in three different ways (showing how they can be so written).

代码

 (define (square x) (* x x))  (define (sum-square x) (+ (square (car x)) (square (cadr x))))  (define (squaresn s)          (define (stream-cadr s) (stream-car (stream-cdr s)))          (define (stream-caddr s) (stream-cadr (stream-cdr s)))          (let ((scar (stream-car s))                    (scadr (stream-cadr s))                    (scaddr (stream-caddr s)))                  (if (= (sum-square scar) (sum-square scadr) (sum-square scaddr))                          (cons-stream (list (sum-square scar) scar scadr scaddr)                                                   (squaresn (stream-cdr (stream-cdr (stream-cdr s)))))                          (squaresn (stream-cdr s)))))  (define square-numbers           (squaresn (weighted-pairs integers integers sum-square))) 



感谢您的访问,希望对您有所帮助。 欢迎大家关注或收藏、评论或点赞。


为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp


5 0