def m b # defines b_0 i = 0 # defines i_0 puts i # reads i_0 (first read) puts i + 1 # reads i_0 (last read) if b # reads b_0 i = 1 # defines i_1 puts i # reads i_1 (first read) puts i + 1 # reads i_1 (last read) else i = 2 # defines i_2 puts i # reads i_2 (first read) puts i + 1 # reads i_2 (last read) end # defines i_3 = phi(i_1, i_2) puts i # reads i3 (first read and last read) end def m1 x while x >= 0 puts x x -= 1 end end def m2 elements for elem in elements do puts elem end puts elem end def m3 [1,2,3].each do |x| puts x end end def m4 puts m3 m3 = 10 puts m3 + 1 end def m5 b x = 0 if b puts x end def m6 (x = (y = 10)) puts y end def m7 foo x = foo.x puts x end def m8 x = 10 x += 10 puts x end def m9 a captured = 10 a.times do |a| puts a puts captured captured += 1 end puts captured end def m10 captured = 0 foo do bar(baz: captured) end end def m11 captured = 0 foo do bar do puts captured end end end def m12(b1, b2, b3, b4) x = 0 if (b1) then puts x elsif (b2) then puts x end # phi read for x if (b3) then puts x elsif (b4) then puts x end end