zoukankan      html  css  js  c++  java
  • 【SICP练习】65 练习2.36

    

    练习2.36

    虽然accumulate正在变得越来越复杂,但我还并未完全领悟到它的深刻意义。不过直觉告诉对于序列的序列,我们要做的是依次取出它每个序列的第一个元素。此方法来源于网络,我一直都是想着用lambda来写,最后感觉太复杂了。没想到一个map就解决了问题。

    Lisp中的高阶函数果然不仅仅是函数那么简单,它能做的真是太多了。抽象也不是一般的抽象。简简单单的一个(map car seqs)便能把序列中的序列的第一个元素计算出来。有了这个技巧题目自然就有了答案。

    (define (accumulate-n op init seqs)

       (if (null? (car seqs))

          ‘()

           (cons (accumulate op init (map car seqs))

                 (accumulate-n op init (map cdrseqs)))))

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

  • 相关阅读:
    中国象棋评估函数建模
    C语言中指针变量传参
    STM32外部中断
    C语言中的注释
    STM32学习网址
    C语言中的布尔值
    更改KEIL背景配色
    Modbus通讯协议
    DUP
    算法的时间复杂度
  • 原文地址:https://www.cnblogs.com/NoMasp/p/4786154.html
Copyright © 2011-2022 走看看