DrRacket原子?符号? :未定义?怎么了?

时间:2014-06-11 22:52:05

标签: scheme lisp racket

我正在使用drracket学习嘴唇编程。我不太喜欢,但我想通过考试;)

我有一个奇怪的问题 - 我不能使用原子?和符号?功能。但数量?刺痛?工作正常。

> (atom? '())
. . atom?: undefined;
 cannot reference an identifier before its definition
> (symbol? A)
. . A: undefined;
 cannot reference an identifier before its definition
> 

我做错了吗?或者问题是什么? 我在Mac上使用DrRacket 6.0.1

提前致谢

1 个答案:

答案 0 :(得分:11)

对于第一个错误:你必须明确定义atom?,因为在简单的Racket中不是一个内置的程序(可能是其中一种教学语言):

(define (atom? x)
  (and (not (null? x))
       (not (pair? x))))

关于第二个错误:symbol? 已定义,错误表明A未定义。也许你的意思是这个(注意引用):

(symbol? 'A)
=> #t