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

Reply via email to