diff --git a/src/lib/vec.rs b/src/lib/vec.rs index 77d4c10dbe05..896a3f9e6aad 100644 --- a/src/lib/vec.rs +++ b/src/lib/vec.rs @@ -384,7 +384,19 @@ Function: map Apply a function to each element of a vector and return the results */ -fn map(f: block(T) -> U, v: [const T]) -> [U] { +fn map(f: block(T) -> U, v: [T]) -> [U] { + let result = []; + reserve(result, len(v)); + for elem: T in v { result += [f(elem)]; } + ret result; +} + +/* +Function: map_mut + +Apply a function to each element of a mutable vector and return the results +*/ +fn map_mut(f: block(T) -> U, v: [const T]) -> [U] { let result = []; reserve(result, len(v)); for elem: T in v {