Add vec::filter

This commit is contained in:
Jesse Ruderman 2011-09-23 19:10:48 -07:00
parent 7979bbbf51
commit 3a7a2943dd
2 changed files with 18 additions and 0 deletions

View file

@ -213,6 +213,17 @@ fn filter_map<@T, @U>(f: block(T) -> option::t<U>, v: [mutable? T]) -> [U] {
ret result;
}
fn filter<@T>(f: block(T) -> bool, v: [mutable? T]) -> [T] {
let result = [];
for elem: T in v {
let elem2 = elem; // satisfies alias checker
if f(elem2) {
result += [elem2];
}
}
ret result;
}
fn foldl<@T, @U>(p: block(U, T) -> U, z: U, v: [mutable? T]) -> U {
let sz = len(v);
if sz == 0u { ret z; }