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
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss

Reply via email to