Project

General

Profile

Bug #11528

Updated by nobu (Nobuyoshi Nakada) about 9 years ago

Not sure if this is intentional behavior but I found it confusing: 

 code: 

 ~~~ruby 
 ~~~ 
 def render(args) 
   p args.to_a 
 end 

 print 'functionally (without parentheses): ' 
 render "foobar".length\ 
         .to_s(2)\ 
         .split('')\ 
         .map do |d| 
   {digit: d} 
 end 

 print 'functionally (with parentheses): ' 
 render("foobar".length\ 
         .to_s(2)\ 
         .split('')\ 
         .map do |d| 
          {digit: d} 
        end) 

 print 'with an intermediate variable: ' 
 data = "foobar".length\ 
         .to_s(2)\ 
         .split('')\ 
         .map do |d| 
   {digit: d} 
 end 
 render data 
 ~~~ 

 output: 

 
 ~~~ 
 functionally (without parentheses): ["1", "1", "0"] 
 functionally (with parentheses): [{:digit=>"1"}, {:digit=>"1"}, {:digit=>"0"}] 
 with an intermediate variable: [{:digit=>"1"}, {:digit=>"1"}, {:digit=>"0"}] 
 ~~~

Back