See times, timesi (implemented for uint and int), and int::range (i.e., these 
all already exist)

On Oct 24, 2012, at 11:23 AM, Dave Halperin wrote:

> Python doesn't have c style for loops and the way you'd do this is use xrange 
> to create an iterator over a range of numbers, then use a high level for 
> loop.  This seems like the cleanest solution for rust to me.  Psuedo-code:
> 
> for range(start, end) |i| {
>   char c = buf[i];
>   ...
>   if (c == uninteresting) {
>     continue;
>   }
>   ...
> }
> 
> Seems like range and some related functions should be considered for the 
> standard library to support this style.
> 
> On Wed, Oct 24, 2012 at 8:58 AM, Chris Double <[email protected]> 
> wrote:
> On Wed, Oct 24, 2012 at 8:19 PM, Henri Sivonen <[email protected]> wrote:
> > Looping over a part of an array by index and moving on immediately
> > when a “not interested” condition matches.
> >
> > Stuff like
> > for (int i = start; i < end; i++) {
> >   char c = buf[i];
> >   ...
> >   if (c == uninteresting) {
> >     continue;
> >   }
> >   ...
> > }
> 
> You might be able to bend macros into something you want. For example:
> 
> macro_rules! my_loop(
>   ($cond:expr, $inc:expr, $body:expr) => {
>     while $cond {
>       while $cond {
>         $body;
>         $inc;
>       }
>       $inc;
>     }
>   };
> )
> 
> fn main () {
>   io::println("hello");
>   let mut i = 0;
>   my_loop!(i < 10, i += 1, {
>     if i < 5 { break; }
>     io::println("foo");
>   })
> }
> 
> Here 'break' inside the macro is your 'continue' and in the example "i
> < 5" is the uninteresting check. I don't know how, in rust, to change
> all uses of some_string into "($inc; loop)" but if you can you can do
> better than this example.
> 
> Chris.
> --
> http://www.bluishcoder.co.nz
> _______________________________________________
> Rust-dev mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/rust-dev
> 
> _______________________________________________
> Rust-dev mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/rust-dev

_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to