每一种语言都提供了三种机制:
- 基本表达形式,用于表示语言所关心的最简单的个体。
- 组合的方法,通过它们可以从较简单的东西出发构造出复合的元素。
- 抽象的方法,通过它们可以为复合对象命名,并将它们作为单元去操作。
Define是该语言最简单的抽象方式
过程的一般定义形式为:
(define(<name> <formal parameters>) <body>)
其中name是符号,过程定义将在环境中关联于这个符号,<formal parameters>(形式参数)用于对应过程中的各个实际参数。<body>是一个表达式,在应用这一过程时,这一表达式中的形式参数将用与之对应的实际参数取代,对这样取代后的表达式的求值,产生出这个过程应用的值。
应用序和正则序:
应用序:解释器首先对运算符和各个运算对象求值,而后将得到的过程应用于得到的实际参数。
正则序:先不求出运算对象的值,直到实际需要它们的值。(得到一个只包含基本运算符的表达式。
条件表达式: ( cond (<p1> <e1>)
(<p2> <e2>)
(<pn> <en>)) 括号括起来的表达式称为对偶,每个对偶中的第一个表达式是一个谓词,它的值将被解释为真或假。求值方式:首先求值谓词<p1>,如果它的值是false,那么就去求值<p2>,继续下雨,直到某个谓词的值为真为止,此时解释器就返回相应子句中的序列表达式<e>的值。
(if <predicate> <consequent> <alternative>)
一个过程定义应该隐去一些细节,过程的使用者可以不必自己去写这些过程,而是从其他程序员那里作为一个黑箱而接受了它。用户在使用一个过程时,应该不需要去弄清它是如何实现的。
在一个过程定义里,被声明为这个过程的形式参数的那些约束变量,就以这个过程的体作为它们的作用域。
时间: 2024-10-05 08:10:59