Both Scheme and Common Lisp do not assign a meaning to { and }, characters that naturally pair and are available in ASCII. So they are the obvious choice for surrounding infix lists in them. Unfortunately, Clojure (and probably others) assign (), [], {}, and <> to pre-existing meanings. (The < and > are used for comparisons). The best backward-compatible syntax I see for Closure using just ASCII is using #[...], which is ugly.
So I'd like to hear some opinions for this proposition: In Lisps where {} and [] are already used, would a Unicode non-ASCII pair be okay instead? If so, what pair? First: is the world ready for Unicode in code? In particular, is support for input, processing, and display easy enough? Second, if so, what pair would serve best? These pages presume to list pairing characters in Unicode: * http://xahlee.info/comp/unicode_matching_brackets.html * http://www.unicode.org/Public/UNIDATA/BidiBrackets.txt There are a lot of characters, but issues with many: * Many Chinese punctuation chars are full-width, which look odd when combined with the so-called half-width characters in Western fonts. * Support for some of the mathematical characters in some fonts seems dicey. That said, it may be easier to get people to fix their fonts. * Some characters are hard to distinguish from otehrs. For example, the "left/right angle bracket with dot" pair has such a tiny dot on some fonts that it would be missed. These look like the best options (if your display can handle them!): «x + 1» : Left/right-pointing double-angle quotation mark, U+AB/U+BB. These are very well-supported (e.g., they are used for French quotations and are in Latin-1), and in many cases are the easiest to enter. However, do they too similar to the comparison operators < and >? ⦃x + 1⦄ : Left/Right white curly bracket, U+2983/U+2984. These are nice-looking, they are similar to {}, and yet easily distinguished from them and other characters. However, I have some concerns that they aren't uniformly supported in fonts. ⟪x + 1⟫ : Mathematical left/right double angle bracket, U+27EA/U+27EB. Look good, but may not be universally supported in fonts. ⟦x + 1⟧ : Mathematical left/right square bracket, U+27e6/U+27e7. Look good, but may not be universally supported in fonts. Some other options, don't look so good. ⦑x + 1⦒ : Left/Right angle bracket with dot. U+2992/U+2993. Not universally supported in fonts. The dot is hard to see, so this is probably a bad choice. 【x + 1】: Left/right black lenticular bracket, U+3010/U+3011. Chinese, so they are "full width" (and thus space odd with western letters). 《x + 1》 : Left/right double angle bracket, U+300a/U+300b. Chinese, so they are "full width" (and thus space odd with western letters). --- David A. Wheeler ------------------------------------------------------------------------------ _______________________________________________ Readable-discuss mailing list Readable-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/readable-discuss