练习1.43

我不想一开始就将结果贴出啦,而是通过叙述自己的思考来完成这篇博客。上一题中我在纸上写下“传入2个过程并返回1个过程”,事实证明挺有效的,于是这次我也依旧这么做了。

repeated需要传入一个过程和一个数字,这个数字决定了这个过程的执行次数。repeated还要返回1个过程,而这个过程又要传入一个数字,这个数字又将通过前面传入的过程来运算。确实挺绕的。

一开始对于决定这个过程的执行次数这一部分,我想参照练习1.41,还define了一个过程。但不知道怎么把这个过程写入repeated中。于是我将这个过程按如下格式写入repeated中了,编译器报错说这种形式非法。

(define repeated

(define r

(lambda (x)

......

(lambda ......

而后我不再企图单独列出这个要让过程执行多次的部分,而是先暂时将问题简单化。即便是只能做一个唯一的普通的运算也好。

(define repeated

(lambda (f a)

(lambda (b)

(if (= a 2)

(f (f b))

(f b)))))

测试一下。

((repeated square 2) 5)

;Value: 625

接下来就该来个递归了是不是。

在这里我还试过一次在define的过程里又define了一个过程,再次报错。终于博主决定将他们分开写了。

(define repeated-iter

(lambda (f a)

(lambda (b)

(if (= a 1)

(f b)

((repeated-iter f (- a 1)) (fb))))))

(define repeated

(lambda (f a)

(lambda (b)

((repeated-iter f a) b))))

接下来我们来测试一下,这回事真正的测试了。

((repeated square 5) 5)

;Value: 23283064365386962890625

这里我只是挑了一个比较大的数来展示,其为(square(square (square (square (square 5)))))。

【SICP练习】38 练习1.43相关推荐

  1. 后端语言-Coffeescript

    为什么选择Coffeecript Javacript是WEB世界的通用语言,但其各种缺点也让人头疼,包括设计缺陷,糟糕的语法,各种浏览器的不兼容解释......用作主力编程语言让人不太放心.所以,更多 ...

  2. 读后感与机翻《理解工具:面向任务的对象建模、学习和识别》

    以下是研究朱松纯FPICU概念中P(physics)的第一篇论文记录: 目录 读后感: 作者干了什么事? 作者怎么做的? 效果怎么样? 局限性 摘要 1 介绍 2 面向任务的对象表示 2.1 三维空间 ...

  3. 2021年信号与系统处理期中考试与课堂交互分数

    §01 期中成绩整理 2021年信号与系统期中考试采取了 考试宝进行课堂练习 方式进行.但是使用考试宝进行测试有以下两方面的问题: 考试宝只能接受姓名和手机号,无法接受学号作为标识符: 考试宝在考试过 ...

  4. php %3cphp用大括号表示,整理HTML5中支持的URL编码与字符编码_html5教程技巧

    URL 编码URL 编码就是将 URLs 中不宜打印的字符或者具有特殊意义的字符转换为 Web 浏览器和服务器明白且普遍接受的表示法. 这些字符包括: ASCII 控制字符 - 不宜打印的字符通常用于 ...

  5. 区间内x的出现个数(主席树)

    题目大概:求区间内x出现的次数 出题人yjy Description ZJK 给你一个长度为 n 的数列和 m 次询问,每次询问从第 l 个到第 r 个数中,数 x 出现 了多少次. Input 第一 ...

  6. java reduce.mdn_reduce高级用法

    reduce作为ES5新增的常规数组方法之一,对比forEach .filter和map,在实际使用上好像有些被忽略,发现身边的人极少用它,导致这个如此强大的方法被逐渐埋没. 如果经常使用reduce ...

  7. Linux小工具(3)之/proc目录详细介绍(上)

    目录 前言 一.平台说明 二./proc目录概述 三.准备使用 (1)进程描述文件夹 (2)/proc目录下常见的文件夹 前言 Linux系统的使用有别于Windows系统,无论是系统信息还是应用软件 ...

  8. linux的nvme驱动需要关心的统计项

    blk-mq-sysfs.c生成了一些其他的nvme的统计项, 有多少个online的cpu,在驱动加载的时候会默认生成多少个队列,除非内存不足或者在保留内核中,则会减少. [root@localho ...

  9. 文件句柄?文件描述符?傻傻分不清楚

    概述 在实际工作中会经常遇到一些bug,有些就需要用到文件句柄,文件描述符等概念,比如报错: too many open files, 如果你对相关知识一无所知,那么debug起来将会异常痛苦.在li ...

最新文章

  1. 存储虚拟化大幅减少了宕机时间
  2. JustifyTextView 解决TextView中英文混排自动换行的问题
  3. java post 提交数据_使用Post方式提交数据到Tomcat服务器的方法
  4. 数据库 - 事务管理(ACID)隔离级别 事务传播行为
  5. (原+转)ubuntu终端输出彩色文字
  6. jxls向右循环为什么会间隔单元格_VBA中单元格的Offset属性,你是否能灵活的利用呢?...
  7. Java中类方法的快速入门
  8. 丁磊:阿里网易员工很多是夫妻
  9. python自动导出数据脚本_使用python生成一个导出数据库的bat脚本文件的示例代码...
  10. 数学分析:函数序列及其一致收敛性
  11. 用Python绘制标准时钟
  12. python给图片加边框,照片加边框,照片加描边,图片加描边,批量给图片加描边
  13. python 倒计时手机app打卡_摆脱拖延症,这些APP让你的时间更高效!
  14. html中自动换行标记[转]
  15. java里什么是注释,全面解析Java中的注解与注释
  16. 20条职场潜规则!小心那些城府很深的人(建议收藏)
  17. 数据安全前言技术研究联邦学习
  18. flash制作swf播放器
  19. Java、JSP商场管理系统
  20. 【第9期】自动驾驶出租车到底“破坏力”几何?麦肯锡这份报告告诉你...

热门文章

  1. WebMessenger完善后将作为一个开源项目
  2. 查看哪个进程占用端口
  3. dockerfile常用命令
  4. 系统内存信息获取工具类
  5. Sun Solaris 9 下Squid 代理服务器的配置笔记
  6. DPOS机制会比POW机制表现更好吗?
  7. vue音乐项目歌手详情页小结
  8. SQLite 源码仓库(Repository)
  9. [python]_ELVE_pip2和pip3如何共存
  10. 中国二维码应用被国外标准垄断 信息安全问题频发