Project

General

Profile

Bug #16406

Updated by alanwu (Alan Wu) over 4 years ago

Consider: 

 ```ruby 
 plus = proc { |a, b| a + b } 
 mult_two = ->(x) { x * 2 } 
 composed = mult_two << plus 
 p [composed. lambda?, composed.call([1, 2])] 
 ``` 
 I think this ought to print `[false, 6]` instead of `[true, 6]`, as the call `composed.call([1, 2])` is clearly not using lambda semantics. 
 Since `composed = f << g` calls `g` first, I think it makes sense to report `#lambda?` base based on whether `g` has lambda semantics. 
 I have a pull request at https://github.com/ruby/ruby/pull/2729 to make this change. 

Back