In https://sourceforge.net/p/readable/wiki/Modifications-0.5/
Alan wisely points out:
"Dropping support for (. x) may have the undesirable side effect that actual
implementations not based on our code may incorrectly parse f(. x) as an error.
It should be clarified that f(. x) means (f . x) and that the validity of the
mapping of (. x) to x is at the implementation's behest.
All in all, it is still much, much simpler for an implementation to just
support (. x) as x, and in particular we should mandate f(. x) as a valid
syntax. Given that f(. x) should map to (f . x), an implementation would be
much, much easier to have (. x) map to x, so that a simple cons is always done
in the f( ... case."
Clearly f(. x) is vital; read is defined as "read(. port)". We should clearly
document that anyway. I've modified the [Solution] page to note this, since
that is not a spec change.
There's another reason to support (. e) too: partly-compliant readers might
implement upper tiers without curly-infix.
It's entirely plausible that an implementer might implement neoteric- or sweet-
expression readers *without* curly-infix, e.g., because {...} is already being
used for something else. Let's call these expressions
"neoteric-without-curly-" (nwc-, pronounced "nuke") and "sweet-without-curly"
(swc-, pronounced "sweek") expressions, so I don't have to say a mouthful each
time.
The resulting reader would not comply with our specs, and would be less
pleasant to use, too. Ugh, really. But as a *transitional* form they might
make sense. If we required support for (. e) mapping to e in
neoteric-expressions, then nwc- and swc- reader *users* could use (. e) in
their code, and when they transition their code to a full reader, it'd still
work. This might make it easier for developers to adopt at least *part* of our
notation.
A key thing that concerns me about our notation is trying to make it *easy* to
adopt by both Lisp system implementers and by software developers. If that
would help, let's do it.
So I guess I'm leaning towards *keeping* the mapping (. e) to e, given the
arguments above.
--- 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