On Fri, 7 Aug 2009 08:22:14 pm Kristj?n Valur J?nsson wrote:
> Unless I am very much mistaken, this is the approach Ruby takes.> Everything is an expression. For example, the value of a block is> the value of The last expression in the block.
Copying what other languages do is not necessarily a bad thing, but that
would fail both "explicit is better than implicit" and "in the face of
ambiguity, avoid the temptation to guess".
It's not immediately obvious to me why the last expression should be
given that privileged rule. Why not the first expression?
> I've never understood the need to have a distinction betwen> statements and expressions, not when expressions can have side> effects. It's like that differentce between procedures and functions> in pascal that only serves to confuse
Its been a while, but I don't think it ever confused me. Being unable to
return multiple values, *that* confused me, but the distinction
between "procedures are for doing something, functions are for getting
something back" was perfectly straight-forward.
(And then Pascal went and made it slightly more confusing by adding var
parameters, so you could get results back from a procedure and have
side-effects in a function... oh well.)