diff options
| author | Jesse Ruderman <jruderman@gmail.com> | 2011-09-23 19:10:48 -0700 |
|---|---|---|
| committer | Jesse Ruderman <jruderman@gmail.com> | 2011-09-23 19:10:48 -0700 |
| commit | 3a7a2943ddd1e7e91f625d6459c3e0636ca129cb (patch) | |
| tree | f4cff64a6706ebe22e8da9b23d3f6c0244ab6a58 /src/lib | |
| parent | 7979bbbf5132104ca3359919f7c515e3a9d8dcd6 (diff) | |
| download | rust-3a7a2943ddd1e7e91f625d6459c3e0636ca129cb.tar.gz rust-3a7a2943ddd1e7e91f625d6459c3e0636ca129cb.zip | |
Add vec::filter
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/vec.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/lib/vec.rs b/src/lib/vec.rs index 6ca0c9bb61e..fef91259b50 100644 --- a/src/lib/vec.rs +++ b/src/lib/vec.rs @@ -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; } |
