Peter Kourzanov <[email protected]> writes:

>> > * matching numbers: we need to use (=) to match them, not equal?
>> > (or eqv? and eq?)
>> 
>> Do we? :)
>> 
>
> Typing. A good example: 42+0.0 should match both 42.0 and 42. 

Note that (R6RS) syntax-case is defined to use equal? for literal
pattern data:

  * P is a pattern datum (any nonlist, nonvector, nonsymbol datum) and F is
    equal to P in the sense of the equal? procedure. 

which reduces to `=' for two exact or two inexact values, but #f
otherwise.  R6RS also notes that `=' is not required to be reliable for
inexact numbers.

The Wright pattern-matching library uses equal? for literal pattern
data, as well, as do the Racket, Chicken, and match.scm implementations.
This has the advantage of providing a single rule for literal data.

What is the use case for special-casing numbers?

-- 
                                Jim Wise
                                [email protected]

Attachment: pgpOI5xqu41Js.pgp
Description: PGP signature

_______________________________________________
Scheme-reports mailing list
[email protected]
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports

Reply via email to