Here's a note about Racket's infix notation. Comments? Agree/disagree?
Racket allows an infix notation of the form (a . > . b), as defined here:
http://docs.racket-lang.org/guide/Pairs__Lists__and_Racket_Syntax.html
Pros:
- Doesn't need to use up braces {}, so it might be easier to implement in some
Lisps which already define {}.
Cons:
- Notation is much longer and more awkward. Every infix operator adds 6
characters, including "." characters not used in any other infix notation.
Infix operations are a common operation, so convenience matters... an
expression like (1 . + . 2) is far longer, and less convenient, than {1 + 2}.
- It doesn't look like other languages or math. A human notation should be
maximally understandable to people given what they already know. {a + b} is
much more similar to standard notation than (a . + . b).
- Easy to make mistakes in. If you forget a "." somewhere, you end up with the
wrong thing. This would also make it harder to see improper lists; improper
lists are important but rarer, so it's good to make them obvious, and this
notation doesn't do that. The Racket documentation even goes out of its way to
emphasize that infix convention use is unrelated to improper lists.. which
suggests that they are easily confused.
- We could still define prefixed f to instead allow f{a . + . b}, but it's
still ugly.
- We'd lose {x} as an escape mechanism. We could revert to (. x) as the escape
mechanism, at which point dots-in-lists becomes rather busy (!).
- It's not clear that Racket's implementation allows multiple operations, e.g.,
(a . + . b . + . c). Even if it doesn't now, that could be added. But this
makes the notation even more unwieldy; every infix operator requires 6 extra
characters not needed by curly-infix.
Even Racket users don't use it much. Its documentation says that "Racket
programmers use the infix convention sparingly—mostly for asymmetric
binary operators such as < and is-a?."
We *could* implement the infix convention in our implementation, as a way to
help people transition to curly-infix.
We *could* switch to the "infix convention", though you can see I'm not excited
about it. Thoughts?
--- David A. Wheeler
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Readable-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/readable-discuss