MIT/GNU Scheme 参考手册 (2021-10-22(1),每天一页,认真学习,加油!)

Sec 1.1 符号约定

        本节详细介绍了本文档其余部分使用的符号约定。

Sec 1.1.1 错误信息

        当本手册使用语句“将发出错误信号”时,这意味着 Scheme 将调用 error,这通常会停止程序的执行并打印错误信息。

        当本手册使用语句“这是一个错误”时,这意味着指定操作在 Scheme 中无效,但系统可能会,也可能不会发出错误信号。当本手册使用语句“必须”时,这意味着违反要求是错误的。

Sec 1.1.2 例子

        本手册给出许多例子以说明表达式的计算。这些例子有一个共同的格式:左边显示计算表达式,中间是一个箭头,右边为表达式的值。例如:

(+ 1 2 )=>   3

        有时,由于空间位置的原因,箭头和值会移到表达式下面。有时,我们不关心值是什么,这种情况下,箭头和值会被省略。

        如果一个例子是演示错误结果,则会标记一个表示错误信息的标志  |error|:

(+ 1 'foo)                |error|      Illegal datum

        下面这个例子是显示打印输出,采用 '-|' 标记:

(begin (write 'foo) 'bar)
     -|  foo
     =>  bar

        当这个手册指出某个表达式的返回值未指定时,这意味着该表达式将对某个对象求值而不会发出错误信号,但是程序不应该以任何方式依赖该值。

Sec 1.1.3 条目格式

        MIT/GNU Scheme 变量、特殊形式或过程的每个描述以以下格式的一行或多行标题开始:

                 template                                                                                类别 ]

这里,类别 为“变量”、“特殊形式” 或 “过程” 中的条目。template 的形式根据具体的类别进行解释。

变量                Template 由变量名组成。

参数                Template 由参数名组成。更多信息见 Sec 2.3 [动态绑定],第20页,

                         Sec 10.3 [参数],第159页。

特殊形式        Template 由特殊形式的语法关键词开始,后面跟一个特殊形式语法的描述。描述由

                        以下约定编写。

                        命名组件在印刷手册中以斜体显示,在信息文件中以大写字母显示。“噪音”关键

                        词,例如特殊形式 cond 中的关键词 else, 在印刷手册中以固定宽度的字体设置;

                        在信息文件中,它们是不可区分的。括号表示它们自己。

                        水平省略号 ( ... ... ) 用于描述重复组建。特别地,

                                thing ...

                        表示 0 个或多个事件,而

                                thing thing ...

                        表示 1 个或多个事件。

                        括号 [ ]表示可选组件。

                        几种特殊形式(例如: lambda)具有由一系列表达式组成的内部组件;通常,这

                        些表达式在特殊形式描述中指定的条件下按顺序求值。这个表达式的顺序通常特殊

                        形式的主体。

过程                Template 以过程绑定的变量名称开头,后面跟过程参数的说明。参数以 “lambda 列

                        表” 的表示法描述(参见 Sec 2.1 [ lambda 表达式 ],第15页),括号[  ] 用于表示

                        可选参数,省略号用于表示“其余”参数。

                        过程参数的名字在印刷手册中以斜体表示,在信息手册中以大写字母表示。

                        当参数以一个 Scheme 类型命名时,表示该参数必须是这个数据类型的对象。例

                        如:

                                cdr  pair                                           [ 过程 ]

                        表示标准Scheme 过程 cdr 接受一个参数,它必须是一个序对。

                        当参数类型错误时,许多过程会发出错误信号;通常,这个错误是一个类型条件:

                        condition-type:wrong-type-argument.

                        除了标准数据类型名称 (pair, list, boolean, string, 等等),以下名称作为参数也暗

                        示了类型限制:

                        * object : 任何对象

                        * thunk:无参数的过程

                        * x,y:实数

                        * q,n:整数

                        * k:确定的非负整数

一些例子:

                    list  object . . .                                                                   [ 过程 ]

        表示标准Scheme过程 list 接受 0 个或多个参数,每个参数可以是任何 Scheme 对象。

                     write-char  char [ output-port]                                          [ 过程 ]

        表示标准Scheme过程 write-char 接受一个字符,也可以调用一个字符 和一个输出端口。

(这部分估计描述不准确的地方很多,需要把后面的内容逐渐学懂以后,再来完善表述)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值