【SICP练习】141 练习3.72

本文介绍了一个算法,用于生成所有能以三种不同方式表示为两个平方数之和的数的流,并展示了如何用Scheme语言实现这一过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

练习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

转载于:https://my.oschina.net/nomasp/blog/503221

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值