SICP Exercise 4.2

本文详细解析了过程应用与赋值的区别,并提出了将过程应用前置于赋值的方法来使Louis的计划顺利进行。通过定义特定的函数来检查过程应用和获取操作符与操作数,实现了一种新的语法形式,使得过程调用以call开头。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SICP Exercise 4.2

a)由于eval中把过程应用放在最后面检查,就可以简单的认为到达此处的任意复合表达式就是过程应用:

(define (application? exp) (pair? exp))

所以如果把过程应用放到赋值前面之后,所有的赋值等语句将被认为是过程应用。

b)为了是Louis的计划能够工作,我们可以改变被求值语言的语法形式(过程应用的语法形式),即每个过程应用都以call开始,此时我们的过程应用的封装程序变为:

(define (application? exp) (tagged-list? exp 'call))
(define (operator exp) (cadr exp))
(define (operands exp) (cddr exp))



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值