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

Reply via email to