Project

General

Profile

Feature #7314

Updated by nobu (Nobuyoshi Nakada) about 4 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 

Back