Scheme 放射性原子?符号?:未定义?怎么了?

Scheme 放射性原子?符号?:未定义?怎么了?,scheme,lisp,racket,Scheme,Lisp,Racket,我正在用drracket学习唇语编程。我不太喜欢,但我想通过考试;) 我有一个奇怪的问题-我不能使用atom?和符号?功能。但是数字呢?还有斯汀?很好 > (atom? '()) . . atom?: undefined; cannot reference an identifier before its definition > (symbol? A) . . A: undefined; cannot reference an identifier before its def

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

我有一个奇怪的问题-我不能使用atom?和符号?功能。但是数字呢?还有斯汀?很好

> (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


提前感谢第一个错误:您必须显式定义atom?,因为在plain Racket中,它不是一个内置过程(可能是在一种教学语言中):

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


@user3184237您对语言方案或语言支架有何评论?我们使用的是DrRacket,所以我是舒尔公司的Scheme@user3184237DrRacket支持多种语言,其中只有一种是Scheme。Scheme不是DrRacket中的默认语言,Racket是。(毕竟,他们把它从DrScheme改名为DrRacket是有原因的。)斯卡:你在回答中提到的教学语言是什么?谢谢。例如,用来教授如何设计程序的语言是一种IDE,它支持许多不同的、通常不兼容的语言。您需要知道设置哪种语言。Scheme不是一种语言,因为我们有许多不兼容的报告和许多不完全兼容的语言,如#!racket(DrRacket只支持一种语言)Lisp是一个更加多样化的组,因为它的所有内容都带有括号内的波兰语前缀符号。
(define (atom? x)
  (and (not (null? x))
       (not (pair? x))))
(symbol? 'A)
=> #t