definitions
在Scheme中,过程定义的一般形式是:
}接受一个表达式序列,允许进行这种过程定义:(定义({name} {parameters >>}){body})]
其中{body
的一般形式是:> (define (f) (define x 1) (define y 1) (define z 1) (+ x y z)) > (f) 3
同样,条件表达式
(cond({predicate
} {expression})({predicate} {expression})…({predicate} {expression] >}))其中每个子句中的<< [表达式
}接受一系列表达式,从而允许这种条件表达式:
> (cond (#t 1 2 3) (#t 4))
3
但是为什么不能像过程定义那样在条件表达式的表达式序列中使用
define
?> (cond (#t (define x 1) (define y 1) (define z 1) (+ x y z)) (#t 4)) ERROR on line 1: unexpected define: (define x 1)
在Scheme中,过程定义的一般形式是:(define({name} {parameters}){body})其中{body}接受一个表达式序列,允许这种过程定义:>(...Note。 —我正在MacOS 10.15.2上使用Chibi-Scheme 0.8.0实现。
Scheme程序由一个或多个导入声明以及后面的一系列表达式和定义组成。导入声明指定程序或库所依赖的库;库导出的标识符的子集可用于程序。表达式在第4章中进行了描述。定义是变量定义,语法定义或记录类型定义,所有这些内容都将在本章中进行介绍。它们在某些允许表达式的环境中有效,但并非在所有情况下都是有效的,特别是在⟨programmost的最外层和⟨body⟩的开头。
definitions