[racket] syntax, differently

From: Ray Racine (ray.racine at gmail.com)
Date: Sun Aug 1 21:23:11 EDT 2010

Ah yes, re-playing back those early scheme days in my head.  As all do and
did,  I wrested with parens, and recursion.  Recursion did finally click and
even now 1/2 the time I find myself "looping" with a recursive function in
Scala.  I don't give it second thought, it does confuse the hell out of
others however who read the code.  Even funnier, I now think how come they
can't seem to "get it".  But it did kick my ass in the day.

But parens ....  I did finally make a separate peace with parens, but in a
very unique manner.  It turned out it wasn't the parens after all it was the
pseudo special forms/keywords + parens that created the dissonance.

As a joke, literally two beers bored as hell on Friday night
what-the-hell-as-a-joke exercise, I used emacs to redefine each of the
common special-form / keywords to single greek letters. lambda ->
lambda-char, define -> lower-delta, if -> lower-iota, begin -> lower-rho,
let -> lower-beta, set! -> lower-sigma, 'and', 'or', 'not' -> the single
char logic symbols, #t #f -> top and bottom symbols, etc.

I read rho means 'r'un.  I read beta as 'b'ind.  I read sigma as 's'et! etc.
 And a few years later, I'm still coding in joke mode.

Sigma (set!) is a bright red char.  All others in chars in a light blue.  I
use a black background, and parens are in a light grey, you almost can't see
them.  I constantly let emacs indent and 'tab' lines into place.  In other
words, indentation guides first, parens second and as the last resort when I
get 'lost'.

All other text is bright white on black.  Nesting is more symmetrical and
cleaner.  I'm sure everyone out there will just hate it.

So where am I going with this.   Just tossing out the thought that its not
the parens per se, but parens combined with the core forms which are the
issue.  Particularly: define, let, begin, if.

Very curious if its just an odd twist to my mental makeup, I'm slightly
dyslexic as well, or some others might end up seeing it the same way.

Skeptical??  I believe DrRacket added delta (for 'define') and lambda greek
char capability long ago.  May have even been driven from an earlier posting
by me on this very topic to the list a number of years back.  Complete the
experiment by adding single greek chars aliases for 'let', 'begin',  et al.

You're probably wondering by now, so without further ado, Ladies and
Gentleman I give you "Funky Racket Syntax"

I tried to actually pick "bad" examples.  I'm sure you'll all agree I
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20100801/69a06190/attachment.html>

Posted on the users mailing list.