[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-janitors] Re: #356: #!key and #!rest only work when number of r
From: |
Chicken Trac |
Subject: |
[Chicken-janitors] Re: #356: #!key and #!rest only work when number of rest arguments is even |
Date: |
Wed, 25 Aug 2010 17:13:47 -0000 |
#356: #!key and #!rest only work when number of rest arguments is even
-----------------------------+----------------------------------------------
Reporter: ckeen | Owner: felix
Type: defect | Status: closed
Priority: major | Milestone:
Component: core libraries | Version: 4.5.x
Resolution: wontfix | Keywords: DSSSL keyword arguments
-----------------------------+----------------------------------------------
Changes (by felix):
* status: new => closed
* resolution: => wontfix
Comment:
Replying to [comment:5 ckeen]:
> >
> > ((lambda (#!rest r #!key f) ...) 1 f: f:)
> >
> > This is legal, since keywords are first-class. Is their any advantage
in disallowing this? Can there be cases where someone actually wants this
behaviour? I couldn't tell, really.
>
> Beats me. Maybe this is just a nice indication that I am doing things
wrong. Since I don't know how to solve this myself I propose that we close
this ticket again. We can have a shot at it again when this issue keeps
reappearing...
>
Another case:
((lambda (#!rest r #!key f g) ...) f: g: g:)
As the keyword-argument list is parsed dynamically, only the position can
be a true indication of whether an argument is a keyword marker or a
keyword argument value. I agree that it would probably remove one possible
user error to check the rest list of being of even length (I think Gambit
does this, but it also extends the DSSSL semantics in other way, IIRC). At
this stage my performance paranoia kicks in (which is usually wrong, mind
you).
So, if this is ok with you, I'll close the ticket. But doing that check is
something that we perhaps should keep in mind.
--
Ticket URL: <http://bugs.call-cc.org/ticket/356#comment:6>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.
- [Chicken-janitors] #356: #!key and #!rest only work when number of rest arguments is even, Chicken Trac, 2010/08/24
- [Chicken-janitors] Re: #356: #!key and #!rest only work when number of rest arguments is even, Chicken Trac, 2010/08/25
- [Chicken-janitors] Re: #356: #!key and #!rest only work when number of rest arguments is even, Chicken Trac, 2010/08/25
- [Chicken-janitors] Re: #356: #!key and #!rest only work when number of rest arguments is even, Chicken Trac, 2010/08/25
- [Chicken-janitors] Re: #356: #!key and #!rest only work when number of rest arguments is even, Chicken Trac, 2010/08/25
- [Chicken-janitors] Re: #356: #!key and #!rest only work when number of rest arguments is even, Chicken Trac, 2010/08/25
- [Chicken-janitors] Re: #356: #!key and #!rest only work when number of rest arguments is even,
Chicken Trac <=