我最近通过阅读 SICP 开始学习 Scheme。在开篇一章中,它讨论了条件,并谈到了else
在cond
“特殊形式”中的使用——据我所知,它被定义为“解释器“只知道”的东西。我的问题是,为什么被else
定义为“特殊形式” “而不是作为一个程序?
如果我启动我的 mit-scheme 解释器并输入:(else 1)
它会引发错误。如果我定义了类似的东西,我可以像在表达式(define (myelse x) x)
中使用它一样使用它,例如:cond
(define (abs x)
(cond ((< x 0) (- x))
(myelse x)))
那么为什么被else
视为特殊的东西,而不是在方案本身中定义呢?