auto merge of #7263 : thestinger/rust/iterator, r=graydon
This commit is contained in:
commit
b0e3ffd380
107 changed files with 353 additions and 671 deletions
|
|
@ -44,7 +44,7 @@ fn maybe_run_test(argv: &[~str], name: ~str, test: &fn()) {
|
|||
if os::getenv(~"RUST_BENCH").is_some() {
|
||||
run_test = true
|
||||
} else if argv.len() > 0 {
|
||||
run_test = argv.contains(&~"all") || argv.contains(&name)
|
||||
run_test = argv.iter().any_(|x| x == &~"all") || argv.iter().any_(|x| x == &name)
|
||||
}
|
||||
|
||||
if !run_test {
|
||||
|
|
|
|||
|
|
@ -378,7 +378,7 @@ fn validate(edges: ~[(node_id, node_id)],
|
|||
|
||||
info!(~"Verifying graph edges...");
|
||||
|
||||
let status = do edges.all() |e| {
|
||||
let status = do edges.iter().all |e| {
|
||||
let (u, v) = *e;
|
||||
|
||||
abs(level[u] - level[v]) <= 1
|
||||
|
|
@ -402,7 +402,7 @@ fn validate(edges: ~[(node_id, node_id)],
|
|||
if *v == -1i64 || u == root {
|
||||
true
|
||||
} else {
|
||||
edges.contains(&(u, *v)) || edges.contains(&(*v, u))
|
||||
edges.iter().any_(|x| x == &(u, *v)) || edges.iter().any_(|x| x == &(*v, u))
|
||||
}
|
||||
};
|
||||
result
|
||||
|
|
|
|||
|
|
@ -23,11 +23,11 @@ use std::uint;
|
|||
use std::vec;
|
||||
|
||||
fn print_complements() {
|
||||
let all = ~[Blue, Red, Yellow];
|
||||
for vec::each(all) |aa| {
|
||||
for vec::each(all) |bb| {
|
||||
io::println(show_color(*aa) + " + " + show_color(*bb) +
|
||||
" -> " + show_color(transform(*aa, *bb)));
|
||||
let all = [Blue, Red, Yellow];
|
||||
for all.iter().advance |aa| {
|
||||
for all.iter().advance |bb| {
|
||||
println(show_color(*aa) + " + " + show_color(*bb) +
|
||||
" -> " + show_color(transform(*aa, *bb)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -49,7 +49,7 @@ fn show_color(cc: color) -> ~str {
|
|||
|
||||
fn show_color_list(set: ~[color]) -> ~str {
|
||||
let mut out = ~"";
|
||||
for vec::eachi(set) |_ii, col| {
|
||||
for set.iter().advance |col| {
|
||||
out += " ";
|
||||
out += show_color(*col);
|
||||
}
|
||||
|
|
@ -182,7 +182,7 @@ fn rendezvous(nn: uint, set: ~[color]) {
|
|||
}
|
||||
|
||||
// tell each creature to stop
|
||||
for vec::eachi(to_creature) |_ii, to_one| {
|
||||
for to_creature.iter().advance |to_one| {
|
||||
to_one.send(None);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ fn find(mm: &HashMap<~[u8], uint>, key: ~str) -> uint {
|
|||
|
||||
// given a map, increment the counter for a key
|
||||
fn update_freq(mm: &mut HashMap<~[u8], uint>, key: &[u8]) {
|
||||
let key = vec::slice(key, 0, key.len()).to_vec();
|
||||
let key = vec::slice(key, 0, key.len()).to_owned();
|
||||
let newval = match mm.pop(&key) {
|
||||
Some(v) => v + 1,
|
||||
None => 1
|
||||
|
|
@ -111,7 +111,7 @@ fn windows_with_carry(bb: &[u8], nn: uint,
|
|||
ii += 1u;
|
||||
}
|
||||
|
||||
return vec::slice(bb, len - (nn - 1u), len).to_vec();
|
||||
return vec::slice(bb, len - (nn - 1u), len).to_owned();
|
||||
}
|
||||
|
||||
fn make_sequence_processor(sz: uint,
|
||||
|
|
@ -211,7 +211,7 @@ fn main() {
|
|||
(_, true) => {
|
||||
let line_bytes = line.as_bytes();
|
||||
|
||||
for sizes.eachi |ii, _sz| {
|
||||
for sizes.iter().enumerate().advance |(ii, _sz)| {
|
||||
let mut lb = line_bytes.to_owned();
|
||||
to_child[ii].send(lb);
|
||||
}
|
||||
|
|
@ -223,12 +223,12 @@ fn main() {
|
|||
}
|
||||
|
||||
// finish...
|
||||
for sizes.eachi |ii, _sz| {
|
||||
for sizes.iter().enumerate().advance |(ii, _sz)| {
|
||||
to_child[ii].send(~[]);
|
||||
}
|
||||
|
||||
// now fetch and print result messages
|
||||
for sizes.eachi |ii, _sz| {
|
||||
for sizes.iter().enumerate().advance |(ii, _sz)| {
|
||||
io::println(from_child[ii].recv());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ fn A(i: i32, j: i32) -> i32 {
|
|||
|
||||
fn dot(v: &[f64], u: &[f64]) -> f64 {
|
||||
let mut sum = 0.0;
|
||||
for v.eachi |i, &v_i| {
|
||||
for v.iter().enumerate().advance |(i, &v_i)| {
|
||||
sum += v_i * u[i];
|
||||
}
|
||||
sum
|
||||
|
|
|
|||
|
|
@ -25,8 +25,8 @@ pub fn main() {
|
|||
// in order for both Ord and TotalOrd
|
||||
let es = [e0, e11, e12, e21, e22];
|
||||
|
||||
for es.eachi |i, e1| {
|
||||
for es.eachi |j, e2| {
|
||||
for es.iter().enumerate().advance |(i, e1)| {
|
||||
for es.iter().enumerate().advance |(j, e2)| {
|
||||
let ord = i.cmp(&j);
|
||||
|
||||
let eq = i == j;
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ pub fn main() {
|
|||
// in order for both Ord and TotalOrd
|
||||
let ss = [s1, s2];
|
||||
|
||||
for ss.eachi |i, s1| {
|
||||
for ss.eachi |j, s2| {
|
||||
for ss.iter().enumerate().advance |(i, s1)| {
|
||||
for ss.iter().enumerate().advance |(j, s2)| {
|
||||
let ord = i.cmp(&j);
|
||||
|
||||
let eq = i == j;
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ pub fn main() {
|
|||
// in order for both Ord and TotalOrd
|
||||
let tss = [ts1, ts2];
|
||||
|
||||
for tss.eachi |i, ts1| {
|
||||
for tss.eachi |j, ts2| {
|
||||
for tss.iter().enumerate().advance |(i, ts1)| {
|
||||
for tss.iter().enumerate().advance |(j, ts2)| {
|
||||
let ord = i.cmp(&j);
|
||||
|
||||
let eq = i == j;
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
use std::old_iter::BaseIter;
|
||||
use std::old_iter;
|
||||
|
||||
trait FlatMapToVec<A> {
|
||||
fn flat_map_to_vec<B, IB:BaseIter<B>>(&self, op: &fn(&A) -> IB) -> ~[B];
|
||||
}
|
||||
|
||||
impl<A:Copy> FlatMapToVec<A> for ~[A] {
|
||||
fn flat_map_to_vec<B, IB:BaseIter<B>>(&self, op: &fn(&A) -> IB) -> ~[B] {
|
||||
old_iter::flat_map_to_vec(self, op)
|
||||
}
|
||||
}
|
||||
|
||||
pub fn main() {}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
pub fn main() {
|
||||
let mut v = ~[1, 2, 3];
|
||||
assert!(v.position(|x| *x == 1) == Some(0));
|
||||
assert!(v.position(|x| *x == 3) == Some(2));
|
||||
assert!(v.position(|x| *x == 17) == None);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue