【发布时间】:2021-05-05 16:16:15
【问题描述】:
我发现let 的括号太多了。例如,在编写以下代码块时,很容易错放 lets 很多右括号。
(define (adder n)
(let ((a 1))
(+ a n)))
所有这些括号对于巨大的let 块来说显然是必要的,但是对于较小的调用它们感觉是多余的。 Scheme 是否有任何用于调用 let 的语法糖?例如,我只想在本地绑定一个变量的情况呢?我考虑过define,但显然是dangerously dependent on your choice of implementation。有没有没有这个缺陷的内置解决方案?我宁愿不必编写宏。本质上,我正在寻找let 的过程,if 是cond 的过程。
【问题讨论】:
-
在 Common Lisp 中你可以这样做,例如,
(let (a b c) ;; body)和a、b和c都将绑定到nil。或者你可以使用(let (a (b 2) c) ;; body)来获得nil绑定,但b绑定到2。