Three hours ago, Peter Kourzanov wrote: > On Fri, 2010-12-24 at 20:49 +0900, Adrien "Pied" PiƩrard wrote: > > > > I believe that > > > > (case-with my-equality-predicate foo > > ((bar) quux) > > (else rofl))) > > That's what I always do in my own code, which could be fine for a > semi-advanced user that redefines (case) for fun. The problem is > that the core language will lose its terseness appeal to newbies and > veterans if you proceed this way... And Eli will be unhappy if he > accidentally imports "wrong" (case) macro.
Please don't put words in my mouth. If you're using an implementation with a module system, then you can define any `case' you want without affecting my code. > P.S. Note that both Haskell and Scala have special devices to attack > this problem (typeclasses resp. mixins). Not sure what ML is doing, but > OCaml could solve this with its OO system supposedly too. You're talking about a customized equality predicate, which is not what `eqv?' is doing. (The reason that `case' is using `eqv?' in the first place is to allow efficient compilation, similar to a C `switch' statement.) -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _______________________________________________ r6rs-discuss mailing list r6rs-discuss@lists.r6rs.org http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss