> On Mon, 24 Oct 2005, Trans wrote: > >> Yukihiro Matsumoto wrote: >>> It's for method delegation. Currently we do >>> >>> def foo(*args) >>> bar(*args) >>> end >>> >>> for method delegation. Under my proposal, this delegation would still >>> work fine, since we have named arguments appear twice, otherwise we >>> must change the code as >>> >>> def foo(*args, **keys) >>> bar(*args, **keys) >>> end >>> >>> everywhere, to just do delegation. >> >> This is sinking worse and worse into a stenchy quagmire. If someone puts >> **keys in the parameters then it makes sense for the keys NOT to appear >> in >> args. I know you want to remain backward compatable so without **keys >> then >> the keys will appear in args. But how does one say they want any number >> of >> ordered parameters but NO named parameters? I suppose you just can't. >> Moreover the args won't be cleanly separated. So this doesn't do us >> much >> good, I'll still be pop'n off trailing hashes :( Really, think about >> that! > > it's not that big a deal to do is it? Yeah, but this just seems like fixing the symptoms of a problem rather than the root cause. I have to say, the further this goes on, the less I like the Lispish syntax for the sheer convolutedness. Lisp did things the way it did because of its implementation an possibly limitations ruby does not suffer from. Also, and please enlighten me here, I have seen no tangible payback for the added complexity except for being able to opt out of using keyword arguments altoghether (Sydney's model creating them implicitly). Am I missing something? I do not think there is any advantage in delegation (when implemented as I posted earlier). > <snip example> > > -a E