(define-syntax let
(syntax-rules ()
[(_ ((x e) ...) b1 b2 ...)
((lambda (x ...) b1 b2 ...) e ...)]))
我们对 let 的定义中的单一规则应该是不言自明的,但有几点值得一提。首先,let 的语法要求正文至少包含一种形式;因此,我们指定了 b1 b2 ... 而不是 b ...,这可能看起来更自然。
为什么使用 (b1 b2 ...) 来表示形式上的租约?使用 (b ...) 更自然吗?