zoukankan      html  css  js  c++  java
  • 【SICP练习】139 练习3.70

    练习3-70

    原文

    这里写图片描述

    代码

    (define (merge-weighted s1 s2 weight)
      (cond ((stream-null? s1) s2)
        ((stream-null? s2) s1)
        (else
         (let ((cars1 (stream-car s1))
               (cars2 (stream-car s2)))
           (cond ((< (weight cars1) (weight cars2))
              (cons-stream cars1
                       (merge-weighted (stream-cdr s1) s2 weight)))
             ((= (weight cars1) (weight cars2))
              (cons-stream cars1
                       (merge-weighted (stream-cdr s1) s2 weight)))
             (else (cons-stream cars2
                        (merge-weighted s1 (stream-cdr s2)
                                weight))))))))
    
    (define (weighted-pairs s1 s2 weight)
      (cons-stream (list (stream-car s1) (stream-car s2))
               (merge-weighted (stream-map (lambda (x) (list (stream-car s1)
                                     x))
                           (stream-cdr s2))
                       (weighted-pairs (stream-cdr s1) (stream-cdr
                                    s2)
                               weight)
                       weight)))
    
    (define weight1 (lambda (x) (+ (car x) (cadr x))))
    
    (define pairs1 (weighted-pairs integers integers weight1))
    
    (define weight2 (lambda (x) (+ (* 2 (car x)) (* 3 (cadr x)) (* 5 (car x)
                                       (cadr x)))))
    
    (define (divide? x y) (= (remainder y x) 0))
    
    (define stream235 (stream-filter (lambda (x) (not (or (divide? 2 x)
                                  (divide? 3 x)
                                  (divide? 5 x))))
                     integers))
    
    (define pairs2 (weighted-pairs stream235 stream235 stream235 weight2))
    
    
    



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


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


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

  • 相关阅读:
    Python os模块的使用
    数据分析 关于基础组件与介绍
    [SRH.Docker] HBase Java 第一天学习记录
    eclipse创建android项目失败的问题 [ android support library ]
    mysql学习总结
    celery的定时运用
    django认证
    django离线插入测试数据
    关于使用git仓库的操作
    小程序笔记
  • 原文地址:https://www.cnblogs.com/NoMasp/p/4786061.html
Copyright © 2011-2022 走看看