[#5218] Ruby Book Eng tl, ch1 question — Jon Babcock <jon@...>

13 messages 2000/10/02

[#5404] Object.foo, setters and so on — "Hal E. Fulton" <hal9000@...>

OK, here is what I think I know.

14 messages 2000/10/11

[#5425] Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...>

18 messages 2000/10/11
[#5427] RE: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — OZAWA -Crouton- Sakuro <crouton@...> 2000/10/11

At Thu, 12 Oct 2000 03:49:46 +0900,

[#5429] Re: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...> 2000/10/11

Thanks for the input.

[#5432] Re: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Yasushi Shoji <yashi@...> 2000/10/11

At Thu, 12 Oct 2000 04:53:41 +0900,

[#5516] Re: Some newbye question — ts <decoux@...>

>>>>> "D" == Davide Marchignoli <marchign@di.unipi.it> writes:

80 messages 2000/10/13
[#5531] Re: Some newbye question — matz@... (Yukihiro Matsumoto) 2000/10/14

Hi,

[#5544] Re: Some newbye question — Davide Marchignoli <marchign@...> 2000/10/15

On Sat, 14 Oct 2000, Yukihiro Matsumoto wrote:

[#5576] Re: local variables (nested, in-block, parameters, etc.) — Dave Thomas <Dave@...> 2000/10/16

matz@zetabits.com (Yukihiro Matsumoto) writes:

[#5617] Re: local variables (nested, in-block, parameters, etc.) — "Brian F. Feldman" <green@...> 2000/10/16

Dave Thomas <Dave@thomases.com> wrote:

[#5705] Dynamic languages, SWOT ? — Hugh Sasse Staff Elec Eng <hgs@...>

There has been discussion on this list/group from time to time about

16 messages 2000/10/20
[#5712] Re: Dynamic languages, SWOT ? — Charles Hixson <charleshixsn@...> 2000/10/20

Hugh Sasse Staff Elec Eng wrote:

[#5882] [RFC] Towards a new synchronisation primitive — hipster <hipster@...4all.nl>

Hello fellow rubyists,

21 messages 2000/10/26

[ruby-talk:5646] Re: passing single or multiple strings.

From: gotoken@... (GOTO Kentaro)
Date: 2000-10-17 17:46:59 UTC
List: ruby-talk #5646
In message "[ruby-talk:5634] Re: passing single or multiple strings."
    on 00/10/17, Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:
>> How about something(*["x", "y"]);
>> 
>>     def something(*bunch_of_args)
>>       bunch_of_args
>>     end
>> 
>>     p something(*["x", "y"]) #=> ["x", "y"]
>> 
>
>Not tried it on a right hand side really....:
>
>irb(main):001:0> x = [[[2.3],4,[5,6]]]
>[[[2.3], 4, [5, 6]]]
>irb(main):002:0> *x
>SyntaxError: compile error
>(irb):2: parse error
>(irb):2:in `irb_binding'
>irb(main):003:0> p *x
>[[2.3], 4, [5, 6]]
>nil
>irb(main):004:0> 
>
>Not sure why *x didn't work there...  So is there a method corresponding
>to this * prefixing? Methods does show a "*" method for Array:

I would beg apologies for my answer not suitable :<

The leading "*" is NOT a method. It is a feature of Syntax, that is,
"*var" on a rhs or an argument is used for the multiple substitution.
One could use this syntax to pass the whole of argument to another
method;

  class Foo
    def initialize(obj)
      @obj = obj
    end

    def method_missing(mid, *args, &blk)
      @obj.send(mid, *args, &blk)
    end
  end

  p foo = Foo.new("foo")  #=> #<Foo:0x80fa2e4 @obj="foo">
  p foo[1,2]              #=> "oo"

So, this is not a direct answer for your questioin but is a solution. 

On the other hand, Ruby would tries invoking "*obj.to_ary" when "*obj"
appears on a rhs or an argument and "to_ary" has to return an array as
its value.

  class Foo
    def to_ary; [1,2,3] end
  end

  a, b, c = *Foo.new.to_ary
  p [a, b, c]  #=> 1, 2, 3

Hope this helps,

-- gotoken

In This Thread