< :the previous in number
^ :the list in numerical order
> :the next in number
P :the previous artilce (have the same parent)
N :the next artilce (have the same parent)
|<:the top of this thread
>|:the next thread
^ :the parent (reply-to)
_:the child (an article replying to this)
>:the elder article having the same parent
<:the youger article having the same parent
---:split window and show thread lists
| :split window (vertically) and show thread lists
~ :close the thread frame
.:the index
..:the index of indices
This has reference to the discussion in the article below.
> http://djberg96.livejournal.com/51052.html
From the discussion on parameters to Array.new therein, I got the
feeling that there were two distinct issues that somehow got mixed up:
(a) method signature -- how many arguments does it accept, which have
defaults, etc., and
(b) which set of arguments belong to the same signature.
Just because of Array.new has a form that accepts size and default
object, and another that accepts an array, it does _not_ directly lead
to a capability to mix those arguments into the same call.
Even today, there are sanity checks to prevent such things as
Array.new(4, {}) { | i | i * i },
and such shall always be needed. And I feel that the warning that Ruby
generates on evaluating the above, is very correct.
Am I seriously missing something in Daniel's argument?
Best regards,
JS
Berger, Daniel wrote:
>> -----Original Message-----
>> From: Yukihiro Matsumoto [mailto:matz / ruby-lang.org]
>> Sent: Wednesday, March 01, 2006 4:46 PM
>> To: ruby-talk ML
>> Subject: Re: Confusion Over Keyword Arguments
>
> <snip>
>
>> |How about "=" for keyword arguments instead
>> |(such as in python)?
>>
>> Unfortunately, assignments are legal in argument list in Ruby.
>>
>> matz.
>
> That can be made to work, with the understanding that '=' in a method
> call means 'keyword argument', not 'assignment', since there is no point
> in doing an assignment in a method call.
>
> # Method definition, '=' means assignment (of default value):
> def foo(bar, baz = 3)
> ...
> end
>
> # Method call, '=' means keyword
> foo(baz = 5, bar = 2)
>
> For anyone who cares to read my past thoughts on the subject:
>
> http://djberg96.livejournal.com/51344.html
> http://djberg96.livejournal.com/51052.html
> http://djberg96.livejournal.com/50325.html
> http://djberg96.livejournal.com/50162.html
>
> Regards,
>
> Dan