1) Because it enables some decoupling of control flow from value computation of 
procedures, and being able to do separation of concerns is generally a good 
thing, even if it's optional.

2) Most Nim programmers like their code short and concise, but that's not a 
religion: making important things explicit seems to be at least as important, 
and `result` helps with that. The lack of opposition to the existence of the 
`proc` keyword is another example, C/C++ programmers would probably call that 
"unnecessary typing".

Personal experience/opinion: I did some CoffeeScript programming and at first I 
really liked the "everything is an expression" / "functions return the last 
expression of their body" paradigm. But after a while I noticed that this way, 
I tend lose track of what my code is actually doing. Of course, Nim lets us 
"implicitly return the last expression" too, but now that we have strict 
functions maybe we should even deprecate that for regular procs.

Reply via email to