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

Reply via email to