Oh, thank you all for the (prompt!) reminder, I had forgotten about that. Match works as expected indeed.
Laurent On Mon, Nov 19, 2012 at 2:15 PM, Jay McCarthy <jay.mccar...@gmail.com>wrote: > case compares with eqv? > > strings are only ever eqv? if they are eq? > > It turns out that Racket guarantees that all literal strings in your > program are eq if they have the same letters, so in your program, the > three "a"s are all the same object. > > When you append the empty string to the end, you get a new object, so > it isn't eqv with the other three. > > On Mon, Nov 19, 2012 at 6:07 AM, Laurent <laurent.ors...@gmail.com> wrote: > > Hi, > > > > Is this a bug or a not quite intuitive normal behavior? > >> (define (foo s) > > (case s > > [("a") 'a] > > [else 'none])) > >> (foo "a") > > 'a > >> (foo (string-append "a" "")) > > 'none > > > > in 5.3.1.5--2012-11-08(5589bcb/a) [3m]. > > > > Laurent > > > > ____________________ > > Racket Users list: > > http://lists.racket-lang.org/users > > > > > > -- > Jay McCarthy <j...@cs.byu.edu> > Assistant Professor / Brigham Young University > http://faculty.cs.byu.edu/~jay > > "The glory of God is Intelligence" - D&C 93 >
____________________ Racket Users list: http://lists.racket-lang.org/users