2014-06-11 66 views
4

我正在學習使用drracket在嘴脣上編程。我不喜歡它太多,但我想通過我的考試;)DrRacket原子?符號? :未定義?哪裏不對?

我有一個奇怪的問題 - 我不能使用原子?和符號?功能。但是數字?和刺痛?工作正常。

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

我做錯了什麼?或者是什麼問題? 林提前

+0

DrRacket是一種支持許多不同且通常不兼容的語言的IDE。你需要知道要設置哪種語言。 Scheme不是一種語言,因爲我們有許多不兼容的報告和許多不完全兼容的語言,比如#!racket(一種語言僅由DrRacket支持)。Lisp是一個更加多樣化的組,因爲它是帶圓括號的波蘭語前綴符號的所有內容。 – Sylwester

回答

8

對於第一個錯誤

感謝在Mac上使用DrRacket 6.0.1:你必須明確地定義atom?,因爲在普通的球拍是不是內置的程序(也許是在的一個教學語言):

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

關於第二錯誤:symbol?是定義,錯誤被指出A未定義。也許你的意思是這樣的(請注意報價):

(symbol? 'A) 
=> #t 
+0

謝謝!在我的筆記形式的講座中,我發現那些是內置的程序... – wiwo

+0

@ user3184237您的筆記關於語言計劃或語言球拍? –

+0

我們使用DrRacket,所以我確信它是關於計劃 – wiwo