Ruby: yield block from a block?

lambda, ruby

Solution

I'm not sure if you can you can do that, but something similar would be:

In Ruby 1.8.6:

a = lambda { |my_proc|
  puts 'in a'
  my_proc.call
}

a.call(lambda { puts "in a's block" })

In Ruby 1.9.1, you can have block parameters

a = lambda { |&block|
  puts 'in a'
  block.call
}

a.call { puts "in a's block" }

Problem

Is it possible for a `lambda`, `proc`, `method` or other type of block in ruby, to yield to another block? something like... ``` a = lambda { puts 'in a' yield if block_given? } a.call { puts "in a's block" } ``` this doesn't work... it just produces ``` in a => nil ``` Is there way to get the block to call a block?

Original source