计算机程序的构造和解释期末考试题,计算机程序的构造和解释--课后习题参考答案...

计算机程序的构造和解释--课后习题参考答案

第一章:构造过程抽象

心智的活动,除了尽力产生各种简单的认识之外,主要表现在如下三个方面:

1)将若干简单的认识组合为一个复合认识,由此产生出各种复杂的知识.

2)将两个认识放在一起对照,不管它们如何简单或者复杂,在这样做时并不将它们合二为一.由此得到有关它们的相互关系的认识.

3)将有关认识与那些在实际中和它们所同在的有关其它认识隔离开,这就是抽象,所有具有普遍性的认识都是这样得到的.

John Locke 有关人类理解的随笔 1690

这一章是开篇,主要介绍的是Scheme语言的部分语法,并且通过使用简单的语法去达到一些不那么简单的数学问题.

注意:在第三章以前都不会用到赋值,所以并没有大家习惯中的"循环",更多地通过递归来实现.

练习:

1.1 略

1.2 略

1.3

CODEBOX

(define (max a b c)

(if (> a b)

(if (> a c) a c)

(if (> b c) b c)))

1.4

这题为读者模糊地提供了一个高阶函数的概念,还有过程和数据的统一结合.

1.5

本题的知识点是正则序和应用序的区别.

考虑

(define (p) (p))

一旦(p)被求值,这个程序就会死掉.

在正则序中,对函数的求值是这样的:

先展开到只剩基本过程,再对其中"需要求值"的部分进行求值.

在应用序中,函数的求值会先对每一个参数进行求值,然后把参数的值代入函数体中.

所以,如果对(test 0 (p))使用应用序,那么(p)就会被求值,然后死循环.

如果是正则序,那么先展开,之后做if条件判断,然后求值 0 ,因为(p) 没有需要,所以没有求值,可以正确返回.

1.6

本题和1.5的关注点是相同的.如果使用new-if的话,它的三个参数都会被求值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值