> On Dec 27, 2017, at 19:57, Justin Zamora <[email protected]> wrote: > > There are many characters that have different Unicode values but use the same > glyphs. Many Cyrillic characters look like their English characters, so they > appear the same visually, but equal? and eq? reveal that they are actually > distinct. It seems to be that the BOM is just another example on this sort of > thing, and people will need to learn that they can't necessarily trust their > eyes.
People may need to learn this, but when it’s easy to eliminate a source of errors, it should be eliminated. In this case, it seems not-too-difficult to display this symbol in a different way, and doing this for the set of nonprinting characters would appear to represent a reasonable compromise position. Again, there may be a reason why this is a bad idea, but I don’t think I’ve heard it yet :). John > > #lang racket > > (define cyrillic (string->symbol "\u0410\u0412\u0421")) > (define english (string->symbol "ABC")) > cyrillic > english > (equal? cyrillic english) > (eq? cyrillic english) > > Welcome to DrRacket, version 6.9 [3m]. > Language: racket, with debugging; memory limit: 128 MB. > 'АВС > 'ABC > #f > #f > > > > Justin > > On Wed, Dec 27, 2017 at 10:33 PM, Jay McCarthy <[email protected]> wrote: > Okay. I think I understand. > > The behavior of "two things print the same but are actually different" > that Racket has seems to be the same as my editor and Web browser > which don't render the BOM as anything unless I fiddle something in > Emacs. Additionally, it seems painful to make it do it a different > way. > > On Wed, Dec 27, 2017 at 10:26 PM, John Clements > <[email protected]> wrote: > > > > > >> On Dec 27, 2017, at 19:06, Jay McCarthy <[email protected]> wrote: > >> > >> This seems to be consistent with my Web browser and editor. Are the > >> symbols eq? or equal? > > > > Neither. Am I misunderstanding you? Here’s code: > > > > #lang racket > > > > (define bad-symbol (string->symbol "\uFEFFhello")) > > > > (define regular-symbol 'hello) > > > > bad-symbol > > regular-symbol > > (equal? bad-symbol regular-symbol) > > (eq? bad-symbol regular-symbol) > > > > this evaluates in DrR to: > > > > Welcome to DrRacket, version 6.11.0.5--2017-12-20(-/f) [3m]. > > Language: racket, with debugging; memory limit: 4096 MB. > > 'hello > > 'hello > > #f > > #f > >> > > > > If you copy and paste these from the interactions into the definitions > > window, you can even get this: > > > > #lang racket > > > > (equal? 'hello 'hello) > > (eq? 'hello ‘hello) > > > > evaluates to: > > > > Welcome to DrRacket, version 6.11.0.5--2017-12-20(-/f) [3m]. > > Language: racket, with debugging; memory limit: 4096 MB. > > #f > > #f > >> > > > > Did you misunderstand me, or did I misunderstand you? > > > > John > > > > > > > > > > > >> > > > >> On Wed, Dec 27, 2017 at 3:54 PM, 'John Clements' via Racket Users > >> <[email protected]> wrote: > >>> I was working with files containing a Byte Order Mark today, and in the > >>> process of writing a test case, I discovered that > >>> > >>> (string->symbol “\uFEFF”) > >>> > >>> produces a symbol whose printed representation is > >>> > >>> ‘hello > >>> > >>> … which seems unfortunate; I guess I would have expected something like > >>> > >>> ‘|\uFEFFhello| > >>> > >>> (… although I see now that this kind of escaping is not currently enabled > >>> inside vertical bars). > >>> > >>> This leads to situations where two symbols with the same printed > >>> representation may not be equal?, which seems unfortunate. > >>> > >>> Am I overlooking a good reason why this is the desired behavior? > >>> > >>> John > >>> > >>> > >>> > >>> -- > >>> You received this message because you are subscribed to the Google Groups > >>> "Racket Users" group. > >>> To unsubscribe from this group and stop receiving emails from it, send an > >>> email to [email protected]. > >>> For more options, visit https://groups.google.com/d/optout. > >> > >> > >> > >> -- > >> -=[ Jay McCarthy http://jeapostrophe.github.io ]=- > >> -=[ Associate Professor PLT @ CS @ UMass Lowell ]=- > >> -=[ Moses 1:33: And worlds without number have I created; ]=- > >> > >> -- > >> You received this message because you are subscribed to the Google Groups > >> "Racket Users" group. > >> To unsubscribe from this group and stop receiving emails from it, send an > >> email to [email protected]. > >> For more options, visit https://groups.google.com/d/optout. > > > > > > > > > > -- > -=[ Jay McCarthy http://jeapostrophe.github.io ]=- > -=[ Associate Professor PLT @ CS @ UMass Lowell ]=- > -=[ Moses 1:33: And worlds without number have I created; ]=- > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

