[plt-scheme] Keyword args
Maybe support both as Kawa does:
http://www.gnu.org/software/kawa/Keywords.html#Keywords
(which defaults to the x: form likely for the reasons below, but
supports the :x form for historical common-lisp fans, etc.)
-paul-
> From: Paul Schlie <schlie at comcast.net>
> Date: Sat, 23 Oct 2004 21:21:29 -0400
> To: Eli Barzilay <eli at barzilay.org>, Doug Orleans <dougo at place.org>
> Cc: <plt-scheme at web-ext.cs.brown.edu>, <plt-scheme at list.cs.brown.edu>
> Subject: Re: [plt-scheme] Keyword args
>
> I understand.
>
> To me, 'x is clearly a shorthand for (quote x) as the quote ' both precedes
> it's argument in both cases, and is clearly logically associated with the
> symbol it's been pre-pended to.
>
> However although :x 2 may be though of as shorthand for (: x 2), it doesn't
> intuitively seem natural to presume it extends it's semantic influence beyond
> the symbol it's been pre-pended to, as x: 2 seems to more intuitively
> naturally indicate given it's traditional syntactic and semantic use. (which
> is I guess why I find (procedure :x 3 :y 3) visually disturbing, as I tend to
> quickly parse as (( procedure :x) (3 :x) 3), which I know is not what was
> intended.
>
> Which may just be me,
>
> -paul-
>
>> From: Eli Barzilay <eli at barzilay.org>
>>> On Oct 22, Paul Schlie wrote:
>>> [...]
>>> -but-please-not-
>>>
>>> (some-function :x 1 :y 2)
>>
>> It is a very popular format for keywords, there is tons of code that
>> will break if it is changed.
>>
>>
>>> As for whatever reason, I still can't help finding it visually
>>> disturbing, and contradicting my instinctive expectations of a colon
>>> appearing between associated elements, prefixing the keyword just
>>> doesn't feel reasonable.
>>
>> If you think about the ":" as a form of "'" (visually) then it does
>> make sense.
>>
>>
>> On Oct 22, Doug Orleans wrote:
>>>
>>> How do you feel about this:
>>>
>>> (some-function 'x 1 'y 2)
>>
>> The problem with this is that what you really want is a new type, not
>> like other symbols. (Or did you say this to make the same point I had
>> above.)
>>
>> If mzscheme would have a simple reader syntax facility, I'd make
>> Swindle turn `:foo' into something different than the symbol `'foo'.
>> Actually, I think that it is hackable, maybe it's worth
>> implementing... (Obviously, that will break some amount of code
>> too...)
>>
>> --
>> ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
>> http://www.barzilay.org/ Maze is Life!