If back compatibility with Lisp in general was not an issue, what I
thought I'd do was, I'd be like this:
1. Disallow typical infix characters in typical identifiers.
Instead, symbols are either entirely composed of infix characters or
entirely composed of [A-Za-z_0-9].
1.1. This means autodetect infix. Down with convoke, use *<=>* instead!! (^.^)
1.2. Since "..." is such a useful symbol in pattern-based syntax
transformers, symbols composed entirely of "." are honorary non-infix
symbols. LOL. (^.^)v
2. Disallow improper lists
- come on! Improper lists mean that lists must always be implemented
using the very specific singly-linked list data structure.
- by disallowing improper lists, you allow any sequence structure to
be used to implement lists: doubly-linked lists, arrays, concatenation
trees, finger trees....
3. Autodetect infix, and have multiple non-infix-symbol datums in a
list around an infix symbol put into lists automatically: "foo a + b"
==> "((+) (foo a) b)"
3.1. Escape infixing by surrounding with (). So you can express (map
(-) ns) to specify the need to negate each element of a list of
numbers rather than subtract a list of numbers from a procedure. Or
if you dislike () for that, then use {} instead. You can always just
use ((+)) if you really want a single-item list containing an infix
symbol. Or specify that the "real name" of an infix symbol includes
{}, and the non-existence of those characters means "use infix
meaning"
3.2. Precedence??? We don't need no stinkin' precedence! Use
explicit parentheses if you're mixing infix operators!!
3.3. A way of turning non-infix-symbols into temporarily-infix
symbols (so that data gets rearranged) would also be nice.
4. THERE WILL BE SUBLIST
4.1. And SUBLIST shall work inside explicit parentheses: "(foo $ a
b)" ==> (foo (a b))
5. Use ";" for GROUP/SUBLIST.
- real programmers don't comment!!!!11111oneoneoneleveneleveneleven
- use a different marker for comments.
6. Fix let. This will require 10+ more years of research, during
which time David A. Wheeler will then prove that compiling a hardware
synthesis tool on THREE different open-source compilers will somehow
prevent all hardware backdoor attacks.
7. I forgot to mention: mandatory indentation.
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Readable-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/readable-discuss