This works.
class Person
def hi(inputproc)
inputproc.call
end
end
Person.new.hi lambda { puts ‘wow1’; puts ‘wow2’}
However when I try to split the code inside block in multiple line the
code does NOT work anymore.
This does NOT work.
class Person
def hi(inputproc)
inputproc.call
end
end
Person.new.hi lambda do
puts ‘wow1’
puts ‘wow2’
end
How do I create a proc consisting of multiple lines of code.
class Person
def hi(inputproc)
inputproc.call
end
end
Person.new.hi lambda {
puts ‘wow1’
puts ‘wow2’
}
On Sat, Aug 23, 2008 at 8:03 PM, Raj S. [email protected] wrote:
However when I try to split the code inside block in multiple line the
Person.new.hi lambda do
puts ‘wow1’
puts ‘wow2’
end
How do I create a proc consisting of multiple lines of code.
Posted via http://www.ruby-forum.com/.
–
Warmest Regards,
Victor H. Goff III
Voice (218) 206-2470
Raj S. wrote:
However when I try to split the code inside block in multiple line the
Person.new.hi lambda do
puts ‘wow1’
puts ‘wow2’
end
How do I create a proc consisting of multiple lines of code.
do…end and {…} have different precedence. Your multiline example
should work of you use {…} instead.
Or you can force precedence with (…).
What’s going on with:
Person.new.hi lambda do
puts ‘wow1’
puts ‘wow2’
end
is that lambda is interpreted as the first param to #hi, and the do…end
block is passed as a block to #hi (rather than to #lambda).
HTH.