为什么在DrRacket中工作,但不在控制台的球拍中工作
问题描述:
(define pick
(lambda (num lat)
(cond ((null? lat) (quote()))
((= (sub1 num) 0) (car lat))
(else
(pick (sub1 num) (cdr lat))))))
(define brees (quote (a b c d e touchdown g h i)))
(pick 6 brees)
DrRacket中的语言设置为高级学生。在定义了sub1
之后,它在IronScheme控制台中也能正常工作。为什么在DrRacket中工作,但不在控制台的球拍中工作
的错误信息是:
reference to undefined identifier: R
答
当我键入到控制台这个我得到
Welcome to Racket v5.0.
> (define pick
(lambda (num lat)
(cond ((null? lat) (quote()))
((= (sub1 num) 0) (car lat))
(else
(pick (sub1 num) (cdr lat))))))
> (define brees (quote (a b c d e touchdown g h i)))
> (pick 6 brees)
'touchdown
你是如何在控制台上运行呢?如果你正在加载它,你可能需要第一行#lang Racket
。
+0
我不知道我做错了什么。它现在似乎工作。我只是通过运行racket.exe并在REPL中输入所有内容来在Windows上运行Racket。奇怪的。谢谢。 – ecounysis 2010-07-23 19:40:24
+1
我无法找到我看到过的地方,但我认为球拍默认使用过去使用的最新#lang。这可能解释了这种不稳定的行为。 – 2011-07-15 11:19:54
我假设这些是单独运行。我会确保你有最新版本的球拍,如果它仍然存在,请在plt邮件列表上提问或者提交一个错误。你会发现PLT的人对你的反应非常敏感。 您的崩溃发生在REPL代码中,但我不知道R从哪里来。 – deinst 2010-07-23 23:06:55
感谢您的帮助。我会做更多的研究,然后询问PLT人员是否无法解决问题。 – ecounysis 2010-07-23 23:30:10