Can anyone give a an example of this please

"code blocks may accept none, one, or more parameters"

I understand how ONE parameter is passed using the 'each' method.
I also understand how TWO parameters is passed, like in this code
x = { "a" => 100, "b" => 20 }
x.delete_if { |key, value| value < 25 }
p x

Can anyone give me a very simple and executable code where:
NO parameters is passed, and
THREE parameters is passed

SIMPLE CODE/SYNTAX ONLY PLEASE, BEGINNER HERE. =D

Thanks so much.

···

--
Posted via http://www.ruby-forum.com/.

"code blocks may accept none, one, or more parameters"

I understand how ONE parameter is passed using the 'each' method.
I also understand how TWO parameters is passed, like in this code
x = { "a" => 100, "b" => 20 }
x.delete_if { |key, value| value < 25 }
p x

Can anyone give me a very simple and executable code where:
NO parameters is passed, and

irb(main):001:0> [0,1,2,3].each { puts "no param" }
no param
no param
no param
no param
=> [0, 1, 2, 3]

THREE parameters is passed

irb(main):002:0> [ [ 1,2,3 ] ].each { |i,j,k| puts i+j+k }
6
=> [[1, 2, 3]]

Ruby version is 1.9.1

SIMPLE CODE/SYNTAX ONLY PLEASE, BEGINNER HERE. =D

Was this simple enough? :slight_smile:

···

On Thu, Oct 7, 2010 at 2:01 PM, Kaye Ng <sbstn26@yahoo.com> wrote:

--
Phillip Gawlowski

Though the folk I have met,
(Ah, how soon!) they forget
When I've moved on to some other place,
There may be one or two,
When I've played and passed through,
Who'll remember my song or my face.

"code blocks may accept none, one, or more parameters"

I understand how ONE parameter is passed using the 'each' method.
I also understand how TWO parameters is passed, like in this code
x = { "a" => 100, "b" => 20 }
x.delete_if { |key, value| value < 25 }
p x

Can anyone give me a very simple and executable code where:
NO parameters is passed, and
THREE parameters is passed

14:14:24 ~$ ruby19 <<CODE

def none; yield; end
def one; yield 1; end
def three; yield 1,2,3; end
none { puts "called" }
one {|x| puts "Got one: #{x}"}
three {|a,b,c| puts "Got three: #{a}, #{b}, #{c}"}
three {|a| p a}
three {|*a| p a}
CODE

called
Got one: 1
Got three: 1, 2, 3
1
[1, 2, 3]
14:15:44 ~$

SIMPLE CODE/SYNTAX ONLY PLEASE, BEGINNER HERE. =D

Please do not shout.

robert

···

On Thu, Oct 7, 2010 at 2:01 PM, Kaye Ng <sbstn26@yahoo.com> wrote:

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

There is _one_ parameter passed - you just do not pick it up in the block.

Kind regards

robert

···

On Thu, Oct 7, 2010 at 2:14 PM, Phillip Gawlowski <cmdjackryan@googlemail.com> wrote:

On Thu, Oct 7, 2010 at 2:01 PM, Kaye Ng <sbstn26@yahoo.com> wrote:

"code blocks may accept none, one, or more parameters"

I understand how ONE parameter is passed using the 'each' method.
I also understand how TWO parameters is passed, like in this code
x = { "a" => 100, "b" => 20 }
x.delete_if { |key, value| value < 25 }
p x

Can anyone give me a very simple and executable code where:
NO parameters is passed, and

irb(main):001:0> [0,1,2,3].each { puts "no param" }
no param
no param
no param
no param
=> [0, 1, 2, 3]

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

Ah, then I misunderstood the question, I guess, thinking that the OP
wanted an example of a block without a parameter enclosed in ||,
analogus to the |key,value| pair in the OP's example.

Though, do you count the array index passed into the #each block as a
parameter, or not?

···

On Thu, Oct 7, 2010 at 2:17 PM, Robert Klemme <shortcutter@googlemail.com> wrote:

irb(main):001:0> [0,1,2,3].each { puts "no param" }
no param
no param
no param
no param
=> [0, 1, 2, 3]

There is _one_ parameter passed - you just do not pick it up in the block.

--
Phillip Gawlowski

Though the folk I have met,
(Ah, how soon!) they forget
When I've moved on to some other place,
There may be one or two,
When I've played and passed through,
Who'll remember my song or my face.

irb(main):001:0> [0,1,2,3].each { puts "no param" }
no param
no param
no param
no param
=> [0, 1, 2, 3]

There is _one_ parameter passed - you just do not pick it up in the block.

Ah, then I misunderstood the question, I guess, thinking that the OP
wanted an example of a block without a parameter enclosed in ||,
analogus to the |key,value| pair in the OP's example.

Actually I am not sure what the OP *really* wanted either. :slight_smile: I just
wanted to point out that the parameter is actually passed (which you
can see if you add a formal parameter to the block) but that the block
does not use it.

Though, do you count the array index passed into the #each block as a
parameter, or not?

The index is only passed with #each_index. And yes, of course it is a
parameter.

Kind regards

robert

···

On Thu, Oct 7, 2010 at 2:29 PM, Phillip Gawlowski <cmdjackryan@googlemail.com> wrote:

On Thu, Oct 7, 2010 at 2:17 PM, Robert Klemme > <shortcutter@googlemail.com> wrote:

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/