SICP 习题2.33 用accumulate完成一些基本的表操作

SICP 习题 (1.33)解题总结 SICP 习题 1.33将之前抽象的accumulate过程继续往上拔,要求我们定义一个带过滤器的accumulate过程,在这个过程中加多一个参数,这个参数是另一个过程,用来做过滤器。比如我们调用(filtered-accumulate 奇数?+ 0 my-self 1 next-int 100)就是列出1到100的数,对每个数调用(奇数? n),如果结果为真就将这个数加入到累积结果中,如果结果 阅读详情
这个accumulate比第一章完成更强大
(define (accumulate op initial sequence)
  (if (null? sequence)
    initial
    (op (car sequence)
        (accumulate op initial (cdr sequence)))))

(define (map p sequence)
  (accumulate (lambda (x y) (cons (p x) y)) () sequence))

(define square 
  (lambda (x) (* x x)))

(newline)
(display (map square (list 1 2 3 4 5)))

(define (append seq1 seq2)
  (accumulate cons seq2 seq1))

(newline)
(display (append (list 1 2 3) (list 4 5 6)))

(define (length sequence)
  (accumulate (lambda (x y) (+ 1 y)) 0 sequence))

(newline)
(display (length (list 1 2 (list 3 4))))
无源元器件-电容选型参数总结 电容选型时,需要考虑的参数多种多样,这些参数的选择会直接影响到电路的性能、稳定性、成本等多个方面。本文对电阻电容磁珠电感的参数进行详细介绍并总结。 阅读详情

相关推荐

写一个b站爬虫(思路)

part 0 安装 scrapy, requests part 1 信息获取 打开番剧索引链接(https://www.bilibili.com/anime/index/) F12控制台,选中NETWORK,来到xhr文件,我们可以找到了存放番剧json的地方

kou的博客 484

SICP 习题2.35 count-leaves 用accumulate实现

这题开始我想着用emumerate-tree来做,但是这样做根本就不需要accumulate,后来上网看了别人的做法,我对于递归的理解实在是太浅显。(define (accumulate op initial sequence) (if (null? sequence) initial (op (car sequence) (accumulate op initi

NM的专栏 631

[学习笔记]Esp32 + 4G模块,随身wifi,ppp拨号上网

Esp32S3 + 4G模块制作随身WIFI教程

weixin_45595548的博客 7412

SICP学习笔记:用高阶函数作抽象(1)

我们可以通过定义一个通用的sum来进行求和.传入过程作为参数练习1.29,利用辛普森法则进行积分求和,需要注意的一点是闭包的性质,在integral里面的参数都是可以直接用在里面的闭包里面的.(define (sum f a next b) ( if(> a b) 0 (+ (f a) (sum f (next a) next b)) ) )

pyb的博客 682

以高通camera 申请ion内存看dma-buf

1 fd 与ion buffer, file绑定 简单总结就是申请一个buffer,再创建一个dmabuf 结构体然后将,然后将dmabuf中得指针指向buffer,dmabuf 再传递给一个匿名的inode,获取到一个file,这样file和dmabuf绑定起来,也就和buffer关联上。然后再从进程中分配一个空闲的fd,将fd 和file囊绑定。这样就能通过fd 快速查找到buffer。file 是个全系统的,他和进程无关,但是fd 是每个进程都是自己独立的,所以再跨进程传输时只需要保证fd ...

兔兔里个花兔的博客 6443

VLA仿真平台:Isaac sim、MuJoCo

在虚拟仿真领域,VLA(Virtual Learning Agent)仿真器是用于开发和训练虚拟机器人代理的环境,它们为机器人提供了一个平台来进行各种任务的模拟和学习,特别是在强化学习(RL)中。两款广泛应用的仿真器是和。这两者各有其特点和优势,适用于不同类型的机器人研究和开发。

u013250861的博客 858

力扣416 二维数组解法

力扣416题。 动态规划的二维数组解法,虽然耗时耗空间,但是花了俩小时明白了为什么for循环不能互换,使用顺序遍历和倒叙遍历的原因,以及dp数组更迭方式。印象深刻。因为我看的书上只用了滚动数组方法,没办法在书上记笔记,所以通过博客记下来。 class Solution { public: bool canPartition(vector<int>& nums) { int SUM = accumulate(nums.begin(), nums.end()

qhu1600417010的博客 3064

深度学习技巧应用26-CNN中多种注意力机制的嵌入方法,终于搞懂注意力机制了

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用26-CNN中多种注意力机制的嵌入方法,终于搞懂注意力机制了。CNN是一种能够有效处理图像和其他二维数据的深度学习模型。在传统的CNN中,每个卷积核都会对输入的所有位置进行相同的操作,这可能导致网络无法针对特定区域或特征进行更加关注和重点处理。 注意力机制被引入卷积神经网络中,旨在使网络能够自动地学习和聚焦于输入中的重要区域或特征。通过引入注意力机制,可以增强网络对不同区域或特征的关注度,提取更有意义和相关的特征,从而提高模型的性能和表达能力。

微学AI的博客 3312

leetcode常用函数

1. 求容器内所有元素之和 使用numeric中的accumulate函数进行求和。 #include <numeric> accumulate(v.begin(), v.end(), 0); accumulate带有三个形参:头两个形参指定要累加的元素范围,第三个形参则是累加的初值。 如可以使用accumulate把string型的vector容器中的元素连接起来: string sum = accumulate(v.begin() , v.end() , string(" "));

Yannie's Blog 985

1、2022 应用密码学与网络安全会议亮点与关键技术解读

2022年应用密码学与网络安全会议(ACNS 2022)在意大利罗马成功举办,会议涵盖了密码学与网络安全的多个前沿领域,包括键控全同态加密、隐私保护技术、区块链、后量子密码学和多方计算等。会议共收录44篇论文,展示了众多创新的研究成果,为学术研究和实际应用提供了新的思路和方法。本次会议促进了学术界和工业界的交流与合作,推动了密码学与网络安全行业的发展。

blue的专栏 182

Yield Management软件:Lam Research二次开发_(5).缺陷分析与分类方法

在半导体制造过程中,缺陷分析和分类是提高良率管理(Yield Management)的关键步骤。通过准确地识别和分类缺陷,可以更好地理解工艺过程中的问题,从而采取有效的措施来提高生产效率和产品质量。本节将详细介绍缺陷分析和分类的方法,包括缺陷检测、特征提取、分类算法及其在Lam Research软件中的应用。

2401_87715305的博客 686

sicp 习题2.33

map 的原始定义 (define (map p sequence)     (if (null? sequence)         '()         (cons (p (car sequence))               (map p (cdr sequence))))) accumulate 的定义 (define (accumulate op initial se

尘埃的博客 842

国科大学习资料--计算机视觉(胡占义、董秋雷)--2018-2019第二学期期末试卷

国科大学习资料–计算机视觉(胡占义、董秋雷)–2018-2019第二学期期末试卷 国科大学习资料–计算机视觉(胡占义、董秋雷)–2018-2019第二学期期末试卷 国科大学习资料–计算机视觉(胡占义、董秋雷)–2018-2019第二学期期末试卷 ...

无名何许人的博客 2165

sicp每日一题[2.33]

我开始没明白它的意思,不知道 lambda 两个参数要干嘛,所以先做的后面2个,做到第三个的时候才发现是 accumulate 函数中 op 函数需要2个参数,明白了这一点,剩下的就比较好处理了,x 就表示当前要处理的项,y 就是原函数中的递归项。这道题还是有一定难度的,尤其是第一个。

再思的博客 226

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【SICP练习】62 练习2.33

练习2.33 既然要用到accumulate,那么我们先来回顾一下这个函数好了。其有三个参数,一个操作符,一个用来作为初始化的值,一个是需要运算的序列。题目中的map已有的定义如下: (define (map p sequence)    (accumulate (lambda (x y) )                  nil

nomasp 1669

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SICP 习题1.33

出现了一个错误,就是(define (f a ) (a))改成了(define (f a) (+ a 0)才能过这是因为(a)这样a就是操作数,是一个函数,并不是一个可返回的值。(define (filtered-accumulate combiner null-value filter-a term a next b) (cond ((> a b) null-value)

NM的专栏 340

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Rockchip VPU DMA-BUF泄漏导致scrcpy黑屏根因分析

DMA-BUF是Linux内核实现跨设备零拷贝内存共享的核心机制,其引用计数(refcount)管理直接关系到物理内存页的释放时机;当硬件编码器驱动未严格遵循get/put配对原则,就会引发DMA-BUF泄漏,逐步耗尽CMA连续内存池,最终导致GPU渲染阻塞、SurfaceFlinger停摆与HDMI黑屏等表象故障;该问题在Rockchip平台VPU驱动中尤为典型,与scrcpy隧道模式高频重连形成强耦合,广泛影响RK3399等工控终端的长期稳定性;本文基于真实产线案例,解析从现象观测、debugfs定位到

weixin_34405354的博客 241

SICP学习笔记(2.2.3)

                                                         SICP学习笔记(2.2.3)                                                                   周银辉 1,练习2.33用累积的思想定义Map 先看看累积的定义: (define (accumulate o

zhouyinhui的专栏 918

【SICP练习】27 练习1.33

练习1.33 题目第二行描述,只组合起由给定范围得到的项里的那些满足特定条件的项,因此我们需要在这一版本的accumulate中添加一个need-filter?,这个新的谓词可以用来传递下面就要用到的prime?。 (define (filtered-accumulateneed-filter? combiner null-value term a next b) (

nomasp 2043

【SICP练习】66 练习2.37

 练习2.37 这道题花了我太长的时间了,一开始我就把题目中的m看成了w。然后题中给出的dot-product的两个参数我还以为一个是向量另一个是矩阵。怎么算都算不出来,直到看到“返回求和...”里的w只有一个i而没有j。好了,那么开始按照题目的要求来做题了。 既然发现了自己的错误,那么就知道了dot-product是干嘛的了,它可以用来求一个矩阵中的一列和一个向量的积。因此

nomasp 1694

sicp每日一题[1.33]

【代码】sicp每日一题[1.33]

再思的博客 1036

【SICP练习】27 练习1.33

 练习1.33 题目第二行描述,只组合起由给定范围得到的项里的那些满足特定条件的项,因此我们需要在这一版本的accumulate中添加一个need-filter?,这个新的谓词可以用来传递下面就要用到的prime?。 (define (filtered-accu...

135

SICP学习笔记(1.3.1)

                                    SICP学习笔记(1.3.1)                                                             周银辉 1,高阶函数 从小学数数 1 2 3 4 5,所以当有一天老师告诉你,它们称之为“自然数”时,你的脸上便没有任何吃惊的表

zhouyinhui的专栏 1039

sicp 2.33

Exercise 2.33.  Fill in the missing expressions to complete the following definitions of some basic list-manipulation operations as accumulations:   (define (map p sequence)  (accumulate (lambda ...

124
上一篇: SICP 习题2.32 subsets 寻找子集
下一篇: SICP 练习2.34 多项式求值(horner规则)
_NMfloat_
博客等级 码龄12年 7粉丝 315原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值