I appreciate the design choice to limit the "optional" parameter indicator to a single character instead of the "&optional" keyword from Common Lisp. However, in my opinion the "o" keyword doesn't stand out as much as "?" would do. An example:
(fn foo (a b (o c 1)) <body>)
(fn foo (a b (? c 1)) <body>)
Mnemonically I think many people will agree with me that "?" is a better 1-character indicator for "optional". It can be read as "is the parameter supplied?".
The "?" choice seems so obvious and natural that I cannot believe is hasn't been considered during the language specification process, and it makes me think there must be some deep reason why it hasn't beeen chosen. Any comments?
Well we can only speculate. He said he wants to reserve '?' for ssyntax, and I pointed out '?' in ssyntax and lone '?' can coexist. If he also reserve lone '?', that's his decision.
Another (fairly obvious) idea: since optional parameters can't be followed by non-optional ones, just have a single ? for all optional parameters, as in CL:
(fn (a b ? (c 3) (d 4)) ...)
This is shorter and mirrors the dot notation for rest parameters.
Looks like how common lisp works. And agreed: mixing optional with keyword args would be a nasty thing to do to users. Probably they saw that it was /possible/ and said sure, why not?
In CL I use named keyword arguments much more than optional ones, so I would want to keep single character prefix for keywords. This leads to a possibility: (&& x) would signify optional, (& x) would signify keyword.
As a sidenote, square brackets are harder to type on Finnish/Swedish keyboards than ordinary parenthesis. The former requires Alt Gr + {8,9}, the latter Shift + {8,9).
(Why am I using the Finnish keyboard layout to edit code? A bad habit from the past, admittedly.)
I think that people want comments to have value in them. The best example of why this might get downmodded is if you look at it on the comments page it just looks like +1 without any context. So in that case it looks like a pretty vacuous comment. I think that if you enjoy a submission just upmod it. If you have something to add to the conversation add it.