【发布时间】:2013-05-15 23:27:03
【问题描述】:
我是 Scheme 的新手,我正在尝试通过阅读 Structure and Interpretation of Computer Programs 来熟悉该语言。我对排序有点困惑。
首先,我知道begin 关键字是为了允许排序而引入的,这样可以更轻松地对可变结构进行操作。我不明白的是,有时他们使用如下排序(受 SCIP 第 268 页上的示例启发):
(define (stuff-0)
(+ 1 2)
(+ 1 3)
'ok)
同样可以使用begin:
(define (stuff-1)
(begin
(+ 1 2)
(+ 1 3)
'ok))
这两者之间是否存在语义差异,或者第一个只是第二个的语法糖?
其次,除了实际重要性之外,理论上我们是否需要begin 构造?我想对于我们需要的每个序列,我们可以编写实现该序列的级联程序。这当然是不切实际的,但我只对没有 begin 构造的语言的表现力感兴趣。
【问题讨论】:
标签: scheme syntactic-sugar sequencing