On 01/27/2012 07:55 PM, bearophile wrote:
I've just read this tutorial about Rust and I've extracted some interesting
bits:
http://doc.rust-lang.org/doc/tutorial.html
My comments are in inside [...].
...
--------------------
From 5.3:
To run such an iteration, you could do this:
for_rev([1, 2, 3], {|n| log(error, n); });
Making use of the shorthand where a final closure argument can be moved outside
of the parentheses permits the following, which looks quite like a normal loop:
for_rev([1, 2, 3]) {|n|
log(error, n);
}
[A similar simple syntax sugar was proposed for D too.]
Yes please.
It sounds similar to stuff I've mentioned about mixins/templates before:
http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D&artnum=95579
Also this, and it references the former:
http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=105781
Those links were mostly about mixins, but it seemed very related to this
idea of turning a trailing predicate into it's own statement block. And
of course, mixins could be super handy things, except that I'm probably
going to avoid using them unless I really need to simply because they
are just awful to look at. That may sound silly, but to me this is an
important code readability issue, and it can get hard to track all of
the nesting elements: (`{()q{}}`).
--------------------
...
Bye,
bearophile