I'm learning programming in Lisp using DrRacket. I don't like it too much but I would like to pass my exam ;)
I have a weird problem - I can't use the atom? and symbol? functions. But number? and string? both work fine.
> (atom? '())
. . atom?: undefined;
cannot reference an identifier before its definition
> (symbol? A)
. . A: undefined;
cannot reference an identifier before its definition
>
Am I doing something wrong? If not, what's the problem?
I'm using DrRacket 6.0.1 on Mac.
For the first error: you have to explicitly define atom?, because in plain Racket is not a built-in procedure (maybe it's in one of the teaching languages):
(define (atom? x)
(and (not (null? x))
(not (pair? x))))
Regarding the second error: symbol? is defined, the error is stating that A is undefined. Perhaps you meant this (notice the quote):
(symbol? 'A)
=> #t
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With