Look for evcase. -- Matthias

On Dec 21, 2014, at 11:58 PM, J Arcane wrote:

> Up with a horrible ear-ache this morning I decided to include a FizzBuzz 
> example in Heresy, the Racket #lang I've been working on, and ran into an 
> unexpected behavior in the (case ...) statement.
> 
> In many languages with case, you can make the testing value a constant, and 
> then make the matching clauses actual calculations which then match against 
> that constant. So when doing FizzBuzz in C-like languages you can do 
> something like "switch 0" and then "case x % 3" for the matching clauses.
> 
> It turns out this doesn't work in Racket, because Racket quotes the values in 
> the matching clauses so they do not evaluate. Specifically, it narrows down 
> to doing this in (case/sequential-test ...): #`(equal? v 'k)
> 
> I can implement an alternate version that works as I expect (and will 
> probably include it in Heresy) just by removing that quote in my version, but 
> I was curious as to the reasoning behind this behavior and if perhaps there's 
> some explanation for it that I may've missed.
> 
> Any insights appreciated,
> John Berry 
> 
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users


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

Reply via email to