Can anyone give a an example of this please

Discussion in 'Ruby' started by Kaye Ng, Oct 7, 2010.

  1. Kaye Ng

    Kaye Ng Guest

    "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/.
    Kaye Ng, Oct 7, 2010
    #1
    1. Advertising

  2. On Thu, Oct 7, 2010 at 2:01 PM, Kaye Ng <> 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]

    > 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? :)

    --
    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.
    Phillip Gawlowski, Oct 7, 2010
    #2
    1. Advertising

  3. On Thu, Oct 7, 2010 at 2:01 PM, Kaye Ng <> 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
    > 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

    --
    remember.guy do |as, often| as.you_can - without end
    http://blog.rubybestpractices.com/
    Robert Klemme, Oct 7, 2010
    #3
  4. On Thu, Oct 7, 2010 at 2:14 PM, Phillip Gawlowski
    <> wrote:
    > On Thu, Oct 7, 2010 at 2:01 PM, Kaye Ng <> 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]


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

    Kind regards

    robert

    --
    remember.guy do |as, often| as.you_can - without end
    http://blog.rubybestpractices.com/
    Robert Klemme, Oct 7, 2010
    #4
  5. On Thu, Oct 7, 2010 at 2:17 PM, Robert Klemme
    <> 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.


    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?

    --
    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.
    Phillip Gawlowski, Oct 7, 2010
    #5
  6. On Thu, Oct 7, 2010 at 2:29 PM, Phillip Gawlowski
    <> wrote:
    > On Thu, Oct 7, 2010 at 2:17 PM, Robert Klemme
    > <> 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.

    >
    > 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. :) 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

    --
    remember.guy do |as, often| as.you_can - without end
    http://blog.rubybestpractices.com/
    Robert Klemme, Oct 7, 2010
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. S300
    Replies:
    1
    Views:
    314
    Roedy Green
    Sep 1, 2003
  2. Porky Pig Jr
    Replies:
    3
    Views:
    368
    Dave Cole
    Aug 24, 2004
  3. grocery_stocker
    Replies:
    10
    Views:
    605
    Keith Thompson
    May 25, 2005
  4. heab92
    Replies:
    0
    Views:
    350
    heab92
    Aug 20, 2007
  5. davy zhang
    Replies:
    0
    Views:
    288
    davy zhang
    Oct 22, 2008
Loading...

Share This Page