I just want to warn that this is entirely non-serious, except it is. If you didn't have to worry about back-compat, what would you do?
On 2/21/13, Alan Manuel Gloria <almkg...@gmail.com> wrote: > 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