You'll want to read http://docs.racket-lang.org/reference/reader.html In particular, section 12.6.4, "A #true, #t, #T followed by a delimiter is the input syntax for the boolean constant 'true'. Section 12.6.4 talks about what can be used as a delimiter. Your example fails because + is not a delimiter that the reader can use to detect the end of the boolean.
Justin On Tue, Feb 1, 2011 at 9:59 AM, qld3303 <[email protected]> wrote: > Hello, > I'm a beginner trying to write a simple Scheme interpreter to help > understand Racket better. I try to mimic the results from the repl as best > possible however in some cases I'm not sure how to reproduce them, this > being one such case. It seems to imply that an identifier or something > other than a boolean could begin with #t but I'm not sure. I tried this > using Guile and got the opposite results: > guile> (+ 3 1)#t+ > 4 > #t > #<primitive-generic +> > guile> (+ 3 1)#\t+ > 4 > ERROR: In procedure scm_lreadr: > ERROR: #<unknown port>:2:1: unknown character name t+ > ABORT: (read-error) > > Currently, my naive repl will work for both characters and booleans but > perhaps it shouldn't? > > Thanks > > On Mon, Jan 31, 2011 at 9:13 PM, qld3303 <[email protected]> wrote: >> >> I'm not clear as to why the following occurs: >> >> > (+ 3 1)#t+ >> 4 >> readline-input::183: read: bad syntax `#t+' >> >> > (+ 3 1)#\t+ >> 4 >> #\t >> #<procedure:+> >> >> Why doesn't it recognize that #t is a boolean value? > > > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/users > _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

