On Sun, 2009-07-05 at 02:09 +0300, Abdulaziz Ghuloum wrote:
> On Jul 5, 2009, at 1:55 AM, Derick Eddington wrote:
> 
> > E.g.:
> >   (define/kw (f (a :default 1) . r) (list a r))
> >   (define (make-kw) (:- a))
> >   (f (make-kw) 2)
> >   => (1 (#[keyword a] 2))
> >   ((values f) (make-kw) 2)
> >   => (2 ())
> > is inconsistent and doesn't seem acceptable.
> 
> 
> And to make them consistent, you're going to choose which one
> to be the "right" one and which one to be the "bad"?

If run-time processing (lambda/kw and first-class ability) is going to
exist, it seems like it should be considered the "right" one because it
unavoidably has to recognize values, and it's not possible to enforce a
prohibition against giving keywords which are not created using (:- ---)
at the immediate call-site, and I like the philosophy of "do not
prohibit what you cannot enforce".  I'm definitely interested in
different perspectives on this issue.

-- 
: Derick
----------------------------------------------------------------

Reply via email to