Answers:
在大学的第一年,我参加的第一门编程课程是使用SICP(即1988年)。但是,我也遇到了类似的问题:对于我自己的计算机(实际上是Commodore Amiga),当时没有Scheme实施可用,只有一个不同的Lisp方言(我不记得它的名字了)。
但是,鉴于Lisp的灵活性,仅通过在一些脚本中添加缺少的lisp宏和函数来“模拟” Scheme语法非常简单。实际上,这足以执行本课程中第1至第3章所需的所有练习(请注意,SICP实际上不需要完整的Scheme堆栈,您只需要一个小子集)。
因此,由于Clojure是AFAIK的一种现代Lisp方言,我想您可以做类似的事情,这使您可以完全自由地选择用Scheme或Clojure或两者混合编写东西。
当然,直接用Clojure解决练习也是可行的,两种语言都非常相似。更重要的是,SICP 是不是编程语言的语法,它是关于正确使用抽象的编程(例如,使用功能,数据和对象)。因此,不要过多考虑可能的语法问题,这些问题不在本书重点范围之内,而且很可能与您无关。
我在找到这个看起来像是在巷子里的站点后就找到了您的问题(尽管您可能在随后的几个月中找到了它或一个替代方案):Clojure中的SICP
recur
只处理尾递归,不是一般的呼叫)和2缺乏call-with-current-continuation
是需要第4章这