"grauzone" <n...@example.net> wrote in message news:gmpgod$fe...@digitalmars.com... > bearophile wrote: >> Let's play more; then what do you think about (all the following are >> legal): >> >> auto r1 = range.find({ x -> x.weight > 100 }); >> auto r2 = range.find({ x :: return x.weight > 100; }); >> auto r3 = range.find({ x :: stmt1(x); stmt2; }); >> auto r4 = range.find({ x, y :: stmt1; return foo(y); }); >> >> I like those enough, they seem balanced, uniform, not too much >> error-prone, they have only one visual chunk, short enough and easy to >> write :-) > > Agreed. > > Especially I like that "normal" and "functional" uses have distinct > syntax. This is much better than the proposal, to allow omission of the > return statement, and to return last value of the last expression > statement instead (like in (x){if(x>0) x+=1; x;}). >
I'd rather have everything use "::" (consistent), and then say that the right-hand side of :: can be either A: one or more statements ("normal") or B: an expression ("functional").