On 2013-07-30 04:28:49 +0400, Roman Klochkov wrote:
>    (case 5
>        [((hash-dot (+ 2 3))) 1]
>        [else 2])
>    => 2

The issue here is that `case` does not actually evaluate the datum parts
of each clause, instead essentially just `quote`ing them and matching on
that. So effectively you are matching on the datum `(quote (hash-dot (+ 2 3)))`
in that case expression.

This is a confusing aspect of `case` that is a leftover from our Scheme
roots. You can avoid it by using `evcase` like Matthias suggested, but
you might just consider using `match` instead.

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

Reply via email to