A discussion about expression languages and Algol68 led me to think
about Ruby loops returning values. I had a look at the parser, and
discovered: 

    a = (while i < 10; i += 1; end)  #-> void value expression

    a = begin; while i < 10; i += 1; end; end  #-> nil

In the latter case, 'while' is treated as if it returned 'nil'.

Just a curiosity...


Dave