chicken-janitors
[Top][All Lists]
Advanced

[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.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]