练习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.youkuaiyun.com/nomasp
版权声明:本文为 NoMasp柯于旺 原创文章,未经许可严禁转载!欢迎访问我的博客:http://blog.youkuaiyun.com/nomasp