On Fri, Jun 8, 2012 at 11:42 AM, Jens Axel Søgaard
<[email protected]> wrote:
>
> When
>
> (let ([x 1])
>  (cond
>    [(= x 1)
>     (define u 2)
>     (+ u 1)]
>    [else u]))
>
> is pasted into the interaction window, I get 3  !
>
> I was expecting an error.

This is the same behavior as:

-> (if #f x 1)
1

What's happening is that `#%top` behaves differently at the REPL than
in a module.  This enables you to write:

-> (define (even? x) (or (zero? x) (odd? (sub1 x))))
-> (define (odd? x) (or (= x 1) (even? (sub1 x))))

without getting an error when entering the first line.
-- 
sam th
[email protected]

____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to