Jason Roelofs wrote: > Use semicolons. I would venture to say that this isn't supposed to > work in 1.8 either and is fixed for 1.9 > > a = if true; 1 else; 2; end Actually, it is supposed to work in 1.8, Matz has added the colon some time ago. Another case is: a = case 1 when 1: :foo else :bar end This stops to work in 1.9, too. That's why I am asking, if this change is intended or if it was just forgotten to implement this in 1.9. > Of course, this *should* be written as: > > a = true ? 1 : 2 No, it was always possible to rely on the values expressions return in Ruby and I think it's better style for more complex expressions. This a major reason why I prefer Ruby to Python. Python always felt like Script Pascal to me (because its syntax distinguishes statements from expressions), while Ruby felt more like Script LISP, because it makes expression oriented programming possible. -- Florian Frank