zoukankan      html  css  js  c++  java
  • 【SICP练习】141 练习3.72

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


    版权声明:本文为 NoMasp柯于旺 原创文章,如需转载请联系本人。

  • 相关阅读:
    mongdb
    网络编程
    分布式锁与事务
    mongodb
    Angular4
    思考
    kafka
    Spark总结
    你不知道的javaScript笔记(1)
    vue2.0 配置 选项 属性 方法 事件 ——速查
  • 原文地址:https://www.cnblogs.com/NoMasp/p/4786059.html
Copyright © 2011-2022 走看看