[racket] racket 5.4 syntax tweak wishlist

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Mon Sep 10 03:52:19 EDT 2012

Two syntax tweaks I'd like to see in Racket 5.4:

* Colon keywords -- Make symbols beginning with the colon character read 
as keywords.  Possibly also make keywords print as starting with colon 
rather than pound-colon.  I know some people don't mind "#:", but I 
don't like typing it or looking at it.  I think "#:" also looks 
gratuitously different/cumbersome to people coming from Lisps, and 
unnecessarily cryptic to people just coming from anywhere else.

* Multiple-value LHS in "let" forms -- In the "let"* forms (i.e., "let", 
"let*", "letrec"), in addition to permitting the LHS of a binding to be 
an identifier, also permit LHS to specify multiple idents for 
multiple-value binding.  Two motivations: (1) "let-values" and friends 
are painfully long for something as basic as a binding form, and 
increase rightward drift; and (2) when editing code to change an 
existing use of a single-values "let"* form to add a multiple-values to 
it, having a multiple-values LHS doesn't require adding a bunch of extra 
parens to the existing single-values.  Syntax-wise, I would be equally 
happy with any of the three alternatives for multiple-value LHS: 
"(values ID ...+)", or drop the keyword to have just "(ID ...+)". or 
even drop the parens so LHS syntax is simply "ID ...+".

I've mentioned these before, but Christmas is right around the corner.

Neil V.


Posted on the users mailing list.