Trans wrote: >Recently I was suprised by the behavior of "start = lambda { start }". > > Undecorated symbols aren't interpreted until they're executed. Ruby doesn't even know if the 'start' symbol inside the { ... } is a method or a local variable until it gets there. That's how I got away with a lot of my poetry stuff (and how other's've done the same). So "start = lambda { ADOSdsgfsdgsjT___SDdddd_____222__S224444449 soduihgsoihosidho5s2405987soos23h }" works just as well. (Hadn't followed the previous thread; you might've already figured this out.) >Now that I understand that, I am suprised that > > a = 1 > b = i if (i = a) > >doesn't work. > > Yeah, that's just weirdness. Possibly because Matz feels local side-effects should move from left to right? In any case, you can do a = 1 if (i = a) then b = i end instead. Devin