我正在阅读SICP并尝试跟进,但为什么我在网上找到的Lisp解释器失败了DEFINE关键字?

时间:2011-12-12 21:39:49

标签: lisp sicp

这是书......

http://mitpress.mit.edu/sicp/full-text/book/book.html

我应该使用哪个解释器来处理这里提供的代码?

到目前为止,我尝试了一些在线和下载Lisp解释器,当我尝试使用DEFINE时,我得到的只是错误。

示例:

从此部分开始:http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-10.html#%_sec_1.1

放在这里:http://www.ugcs.caltech.edu/~rona/tlisp/

> (define (square x) (* x x))
*** EVAL Error: Function 'DEFINE' is not defined. ***

还尝试使用'lispbox',结果相似。

啊哈:http://sisc-scheme.org/sisc-online.php有效,感谢提示blabla999,很快就会接受回答。

经过进一步研究: Scheme!= Common Lisp

3 个答案:

答案 0 :(得分:5)

可能是因为:

(EQ Scheme CommonLisp) - > #F

还有:

(EQ Scheme ManyOtherLisps) - > #F

尝试一个真实的方案(我推荐plt,最近已经重命名为Racket)。 (或者自己写 - 见http://www.avc-cvut.cz/avc.php?id=9769

答案 1 :(得分:1)

有许多不同的Lisp方言,其中Common Lisp可能是今天使用最多的方言。您熟悉的Scheme并不声称是Lisp,尽管它具有许多特征。

对于它的价值,你要做的是写

(defun square (x) (* x x))

在Common Lisp中。

答案 2 :(得分:0)

最简单的方法(到目前为止)我发现在SCIP中为示例获取Lisp环境是在这里找到的Racket中使用DrRacket http://racket-lang.org/

DrRacket环境有一个编辑器和REPL,支持复制/粘贴和漂亮的打印,就像Python Idle工具一样。安装起来很简单,并且可以使用本书和the videos中的所有示例。

我在这里找到了关于学习lisp的其他一些很好的提示:http://www.learningclojure.com/2011/02/advice-to-newbie.html