[racket] Quoted expressions in #lang racket

From: Marco Morazan (morazanm at gmail.com)
Date: Sun Sep 18 15:16:14 EDT 2011

2011/9/18 Racket Noob <racketnoob at hotmail.com>:
>  You can't compute (car (1 2 3)) because before car even begin, it's
> parameter, list (1 2 3) must be evaluated, but 1 is not a procedure name. It
> is different than in (quote (1 2 3)) where such evaluation doesn't take
> place.

Yes, so does that not alert you that (1 2 3) is the "nonsense" part?
There is no value that is (1 2 3).

I kindly suggest the thought that omitting the quote is precisely what
makes things harder for beginners. It seems to suggest to the
untrained that REPL is returning something that is not a value. As
Matthias and others have pointed out, you can not take the "value" (1
2 3) and use it somewhere else. What sense does that make?

I also believe John brought the point home for you. If 3 "evaluates"
to 3, then why should '(1 2 3) not "evaluate" to '(1 2 3)? They are
both constants and should exhibit similar behavior when evaluated.




Posted on the users mailing list.