On Wed, 2014-05-07 at 10:08 +0200, Sascha Ziemann wrote: > 2014-05-07 0:31 GMT+02:00 Bear <[email protected]>: > > > > I would be rather upset if > > > > (string=? (string #\A #\x301) (string #\xc1)) ==> #f > > But there is a difference. > #\A #\x301 is an Unicode expression and #\xc1 is a Unicode literal. > You have to evaluate the first to get the second.
Well, no. (string #\A #\x301) and (string #\xc1) are both expressions returning a string. Unicode canonical equivalence says they should return the same string. Apparently our standards committee believes that they should return different strings, but I do not understand why. > And if you cryptographically sign the first it would differ from the > signature of the second. That is a false distinction, and will lead to much wailing and gnashing of teeth when, eg, signatures don't match documents, authentication codes fail, etc ad nauseam, and it all falls on application programmers and happens over and over, because the scheme implementers are not allowed to fix it once and for all. Bear _______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
