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. > Date: Sun, 18 Sep 2011 12:05:20 -0500 > From: gret...@acm.org > To: matth...@ccs.neu.edu > CC: e...@barzilay.org; s...@cs.brown.edu; users@racket-lang.org > Subject: Re: [racket] Quoted expressions in #lang racket > > On Sun, Sep 18, 2011 at 11:41 AM, Matthias Felleisen > <matth...@ccs.neu.edu> wrote: > > > > Mr Noob: if (1 2 3) is a value, why can't I compute (car (1 2 3)). 4 is a > > value and I can compute (+ 4 3). #t is a value and I can compute (not #t). > > Why do you insist that I cannot compute with (1 2 3) if it is a value? > > Maybe RacketNoob can start by doing this: > > "In the bottom left hand of the screen in DrRacket click the "Choose > Language" dropdown, "Use the language declared in source" should be > selected on the left. > > On the right you can choose the "Output Syntax". If you change it to > "write" then it will look how you want." > > And then we can point him at some good things to read that will help > him make sense of all the good points and advice everyone has shared. > > Perhaps: Racket reader documentation, quote documentation, Scheme > standard? That is how I learned. I loved this passage from the R6RS > spec: > > ``It is important to distinguish between the mathematical numbers, the > Scheme objects that attempt to model them, the machine representations > used to implement the numbers, and notations used to write numbers.'' > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/users
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users