R6RS说
虽然定义不是表达式,复合表达式和 定义表现出相似的句法结构。在纯粹 句法层面,都是形式。
和
具有语法关键字的形式是其第一个子表达式所遵循的形式 由关键字确定的特殊规则。一个中的定义标识符 定义也是一个语法关键字。因此,定义也 不是过程调用。
通常可以将程序调用与这些特殊调用区分开 通过在第一个位置查找语法关键字来查找表格 形式:如果第一个位置不包含语法关键字,则 表达式是一个过程调用。
特殊形式可以是具有副作用的表达吗?
特殊形式可以是没有副作用的表达式吗?
例如,let
和lambda
形式是特殊形式和表达式。他们有副作用吗?它们会在自己内部创建变量绑定,这是副作用吗?