最近有幸看到了SICP这本书,现在开始慢慢啃这本书,在这里留下一些学习记录,也算一个计划吧。只有做些习题才能体验什么是FP,所以我会把自己学习中做的SICP的提记录在这里。
这里会列出第一章中习题的答案。
练习 1.1
10
12
8
3
6
将3和a关联 类似于 a=3
将用上一步定义的a的值来替换a计算后的结果4和b关联 类似于 b=4
引用环境中定义的a和b 19
#f(false)
判断结果是真则返回b即4
b=4为真则返回16
b>a返回6
4*4返回16
练习 1.2
( / ( + 5
4
(- 2
( - 3
(+ 6
(/ 4 5)
)
)
)
)
( * 3
( - 6 2 )
( - 2 7 )
)
)
练习 1.3
(define (sumMax x y z )
( cond ((and (> x y)(> y z))(+ x y))
((and (> x y) (> z y))(+ x z))
((and (> y x) (> x z))(+ x y))
((and (> y x) (> z x))(+ y z))
)
)
逻辑清楚但是多了一些逻辑判断,改成if形式
(define (sumMax x y z )
(if (> x y)
(if (> y z)
(+ x y)
(+ x z)
)
(if (> z x)
(+ y z)
(+ x y)
)
)
)
典型的if else的写法。
求最大和第二大元素的和
(define (sumMax x y z )
(+ (if ( > z ( if (> x y)
x
y
)
)
z
(if (> x y)
x
y
) )
(if ( < z ( if (< x y)
x
y
)
)
(if (< x y)
x
y
)
(if (< z (if (> x y)
x
y
))
z
(if (> x y) x y)
)
)
))
练习 1.4
做这道题让我想到了离散数学中的群论,看来数学无处不在。
答:根据b的值来确定做什么运算,运算符可以作为结果来返回
练习 1.5
当采用正则序时,是先不求出运算对象的值,直到实际需要他们的值时才去做,首先是形参和实参的替换
(if(= 0 0)
0
(p)//这里是过程名,表达式还没有求值,只是做的简单的替换
)
因为if判断和求序无关,所以这个过程不会被计算
返回值为0
当采用应用序求值时,是先计算出运算的值
(if(= 0 0)
0
(p) //这里就是值,表达式已经被求值过了,但是会无限递归
)
因为无限递归所以程序内存耗尽,报错
分享到:
相关推荐
docker run -tid -p <port>:80 apachecn0/sicp-py-zh # 访问 http://localhost:{port} 查看文档 PYPI pip install sicp-py-zh sicp-py-zh # 访问 http://localhost:{port} 查看文档 NPM npm install -g sicp-py-zh ...
“SICP”全称为《Structure and Interpretation of Computer Programs》(计算机程序的构造和解释),是一本经典的计算机科学教材,通常用于教授计算机科学的基础知识,特别是编程语言的原理。书中的许多练习和例子...
运用激光熔覆技术在AISI1045钢表面制备了30vol-% SiCp/Ni-Cr-B-Si-C涂层。SEM和TEM观察分析表明:SiCp在熔覆过程中完全溶解;涂层结合区组织为共晶结构;涂层组织由初生石墨球G,分布在γ-Ni固溶体枝晶中的M23(C,B)6...
为研究SiCP/Al-Fe-V-Si复合材料的热稳定性,对多层喷射沉积技术制备的SiC颗粒增强Al-Fe-V-Si合金经过不同温度下的热稳定性实验后进行了硬度检测,并对其显微组织进行了电镜观察。结果表明:随着基体合金材料中Fe含量的...
资源分类:Python库 所属语言:Python 资源全名:sicp-0.0.2-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
本资料集包含了对SICP第一章习题的解答,旨在帮助学习者巩固基础,深化对函数式编程的理解。 首先,让我们关注一下习题解答中的几个关键部分: 1. **1.6.ss**: 这部分可能涉及到函数定义、递归和过程抽象。SICP的...
以上就是基于文件名推测的SICP第二章练习题相关知识点。这些内容深入地涵盖了函数式编程的基础和应用,对于提升编程思维和技能大有裨益。实际的学习过程中,通过阅读和理解这些代码,结合原书的理论部分,将有助于...
NUS CS1101s SICP JavaScript 描述原文:协议:如果你交给某人一个程序,你将折磨他一整天;如果你教某人如何编写程序,你将折磨他一辈子。...下载Dockerdocker pull apachecn0/sicp-js-zhdocker run -tid
最终目标是完全支持SICP指令集,然后使用此编译器将Scheme编译为Z80,或直接将Scheme编写为Z80。 无论哪种方式,该项目对我来说也意味着可以在TI-84(不是最好的语言)上探索Z80装配中的编程。特征显示字符串和数字...
- **第一章:通过过程构建抽象**(Building Abstractions with Procedures) - **1.1 程序设计的元素**(The Elements of Programming) - **1.1.1 表达式**(Expressions):介绍基本的数值表达式和符号表达式。...
在这个压缩包中,你将找到作者对第二版书中第1至3章练习题的解决方案,以及与麻省理工学院6.001课程相关的项目和考试题目。以下是这些章节中的核心知识点和学习重点: 1. **基础概念与Lisp语言**: - **Lisp语法**...
SICP-答案 SICP 中的问题解答。 支持两个版本。 除非有注释,否则所有这些都是可运行的。 大多数答案不能保证是正确的,因为它们没有经过深入测试。 但是,第4章中的解释器,即EVAL-APPLY、ANALYZE-EVAL-APPLY、AMB...
sicp-in-python(中文版+英文版)PDF 背景. SICP 全称Structure and Interpretation of Computer Programs,翻译过来叫《计算机程序的构造和解释》使用python
以聚硅氧烷为先驱体,Sic为隋性填料,Al为活性填料,考察了活性填料Al在聚硅氧烷转化制备Sr0-c复合材料中的应用。研究发现:600℃时,活性填料A1能与聚硅氧烷裂解产生的含碳小分子气体反应生成A14C3,800℃时能与N2反应...
SICP-Python版本
SICP中文第二版SICP中文第二版SICP中文第二版SICP中文第二版SICP中文第二版
CoRecursive Slack SICP研究小组 章节 1-1-1 ::表达式 1-1-2 ::命名与环境 1-1-3 ::评估组合 1-1-4 ::复合程序 1-1-5 ::程序应用的替代模型 1-1-6 ::条件表达式和谓词 1-1-7 ::例子:牛顿法求平方根 1-1-8 :...
利用直接金属氧化法制备了SiC颗粒增强Al2O3-Al基复合材料,借助于XRD、光学金相显微镜(OM)和扫描电镜(SEM)对该复合材料的微观结构进行了观测,分析了SiO2氧化层的形成在复合材料制备过程中的作用。...