Feature #7314
Updated by nobu (Nobuyoshi Nakada) over 8 years ago
=begin I have code where I need to convert a proc to a lambda (i need to be able to return out of the block). I would expect that passing a proc into a lambda to return a lambda. When I run this code on MRI i do not get the result I would expect ```ruby my_proc = proc { |x| x } my_lambda = lambda &my_proc my_lambda.lambda? ``` The result is `false` (({false})) but I would expect it to be `true` (({true})) There is currently a way to turn a proc into a lambda in MRI like this: ```ruby def convert_to_lambda &block obj = Object.new obj.define_singleton_method(:_, &block) return obj.method(:_).to_proc end ``` But this feels like a hack, and is not supported across other implementations. I would expect that passing a proc into a lambda to return a lambda, I believe it is a bug. =end