当前位置: 首页 > news >正文

sicp每日一题[2.33]

Exercise 2.33

Fill in the missing expressions to complete the following definitions of some basic list-manipulation operations as accumulations:

; p 表示一个函数,sequence 表示一个列表
; 这个函数将对列表中每一个元素进行 p 操作
(define (map p sequence)(accumulate (lambda (x y) <??>) nil sequence))(define (append seq1 seq2)(accumulate cons <??> <??>))(define (length sequence)(accumulate <??> 0 sequence))

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

(define (map p sequence)(accumulate(lambda (x y) (if (null? x) y (cons (p x) y)))nilsequence))(define (append seq1 seq2)(accumulate cons seq2 seq1))(define (length sequence)(accumulate(lambda (x y) (if (null? x) y (+ y 1)))0sequence))(define odds (list 1 3 5 7 9))
(define evens (list 2 4 6 8 10))(map square odds)
(map sqrt evens)
(append odds evens)
(length odds); 执行结果
'(1 9 25 49 81)
'(1.4142156862745097 2.0000000929222947 2.4494897427875517 2.8284271250498643 3.162277665175675)
'(1 3 5 7 9 2 4 6 8 10)
5
http://www.lryc.cn/news/448993.html

相关文章:

  • 【Mybatis】常见面试题汇总 共56题
  • 每天一道面试题(17):服务网格学习笔记
  • 【nrm】npm 注册表管理器
  • 解压短视频素材资源网站推荐
  • Qemu开发ARM篇-6、emmc/SD卡AB分区镜像制作并通过uboot进行挂载启动
  • Spring Boot中使用ThreadPoolTaskScheduler实现轻量级多线程定时任务
  • 完全二叉树的节点个数 C++ 简单问题
  • 每日一题学习笔记
  • 从事人工智能学习Python还是学习C++?
  • 博客摘录「 CNN中的感受野和有效感受野会对模型产生怎样的影响?」2024年9月29日
  • AURIX单片机示例:开发入门与点亮LED
  • MySQL字符串函数与操作
  • HTML+CSS 水滴登录页
  • 基于Next.js和TailwindCss的TailwindCss
  • 若依开源系统多数据源整合clickhouse数据库详细步骤
  • Subdominator:一款针对漏洞奖励计划的子域名安全枚举工具
  • [leetcode]516_最长回文子序列
  • 电子相册|智能化电子相册|基于java的电子相册管理系统设计与实现(源码+数据库+文档)
  • linux项目_c语言:Makefile编写、动态库生成、添加动态库路径
  • Python学习(1):字典、DataFrame的创建方法
  • async await 介绍 从0手动实现async await
  • UDP校验和计算及网络中的校验和机制
  • 如何使用C语言接入Doris数据库
  • DarkLabel 2.4 目标追标注工具介绍
  • uniapp设置从右上角到左下角的三种渐变颜色
  • Python 解析 html
  • “大数据+高职”:VR虚拟仿真实训室的发展前景
  • Pygame中Sprite实现逃亡游戏4
  • sentinel原理源码分析系列(一)-总述
  • 创建数据/采集数据+从PI数据到PC+实时UI+To PLC