On 6/14/11 1:58 PM, so wrote:
On Tue, 14 Jun 2011 09:48:14 +0300, Ary Manzana <[email protected]> wrote:Well, that's the way Ruby works :-) In fact, in Ruby there are no named arguments. So people came up with this idea. def some_function(param_a, param_b, options = {}) param_c = options['param_c'] || default_for_c param_d = options['param_d'] || default_for_d end The last argument is a hash (a dictionary) with a default value of an empty hash. So you can call it: some_function(1, 2) some_function(1, 2, {'param_c' => 3}) some_function(1, 2, {'param_c' => 3, 'param_d' => 4}) But in Ruby there's a rule: you can skip parenthesis. And you can skip the brackets for a hash if it's the last argument. And instead of strings symbols are much nicer and efficient. So... some_function 1, 2 some_function 1, 2, :param_c => 3 some_function 1, 3, :param_c => 3, :param_d => 4 Of course this won't work in D because passing hashes all the time would be very inneficcient. But I think positional arguments first, named arguments last is a simple rule that's easy to follow and probably implement (maybe when I'll go back to my country I'll try to implement it).Tell me this is not true! :)
:-P
So ruby don't have named arguments and the community came up with a solution which is by the look of it heavily influenced by language capabilities. No offense and please no kicking butts but... This is madness!!!
Well, in fact I don't know if the community came up with this or if the creators came up with this. But I'm sure at some point they agreed on this because it's supported on the syntax level.
