@@ -75,7 +75,7 @@ fn map_slices<A: copy send, B: copy send>(
75
75
#[ doc="A parallel version of map." ]
76
76
fn map < A : copy send, B : copy send> ( xs : [ A ] , f : fn ~( A ) -> B ) -> [ B ] {
77
77
vec:: concat ( map_slices ( xs) { ||
78
- fn ~( _base: uint, slice : [ const A ] /& ) -> [ B ] {
78
+ fn ~( _base: uint, slice : [ const A ] /& , copy f ) -> [ B ] {
79
79
vec:: map ( slice, f)
80
80
}
81
81
} )
@@ -84,7 +84,7 @@ fn map<A: copy send, B: copy send>(xs: [A], f: fn~(A) -> B) -> [B] {
84
84
#[ doc="A parallel version of mapi." ]
85
85
fn mapi < A : copy send, B : copy send> ( xs : [ A ] , f : fn ~( uint , A ) -> B ) -> [ B ] {
86
86
let slices = map_slices ( xs) { ||
87
- fn~( base: uint, slice : [ const A ] /& ) -> [ B ] {
87
+ fn ~( base: uint, slice : [ const A ] /& , copy f ) -> [ B ] {
88
88
vec:: mapi ( slice) { |i, x|
89
89
f ( i + base, x)
90
90
}
@@ -104,7 +104,7 @@ fn mapi_factory<A: copy send, B: copy send>(
104
104
xs : [ A ] , f : fn ( ) -> fn ~( uint , A ) -> B ) -> [ B ] {
105
105
let slices = map_slices ( xs) { ||
106
106
let f = f ( ) ;
107
- fn ~( base: uint, slice : [ const A ] /& ) -> [ B ] {
107
+ fn ~( base: uint, slice : [ const A ] /& , move f ) -> [ B ] {
108
108
vec:: mapi ( slice ) { |i, x|
109
109
f ( i + base, x)
110
110
}
@@ -118,16 +118,20 @@ fn mapi_factory<A: copy send, B: copy send>(
118
118
119
119
#[ doc="Returns true if the function holds for all elements in the vector." ]
120
120
fn alli < A : copy send> ( xs : [ A ] , f : fn ~( uint , A ) -> bool ) -> bool {
121
- vec:: all( map_slices ( xs) { || fn ~( base: uint, slice : [ const A ] /& ) -> bool {
122
- vec:: alli ( slice) { |i, x|
123
- f ( i + base, x)
121
+ vec:: all ( map_slices ( xs) { ||
122
+ fn ~( base: uint, slice : [ const A ] /& , copy f) -> bool {
123
+ vec:: alli ( slice) { |i, x|
124
+ f ( i + base, x)
125
+ }
124
126
}
125
- } } ) { |x| x }
127
+ } ) { |x| x }
126
128
}
127
129
128
130
#[ doc="Returns true if the function holds for any elements in the vector." ]
129
131
fn any < A : copy send> ( xs : [ A ] , f : fn ~( A ) -> bool ) -> bool {
130
- vec:: any( map_slices ( xs) { || fn ~( _base : uint, slice: [ const A ] /& ) -> bool {
131
- vec:: any ( slice, f)
132
- } } ) { |x| x }
132
+ vec:: any ( map_slices ( xs) { ||
133
+ fn ~( _base : uint, slice: [ const A ] /& , copy f) -> bool {
134
+ vec:: any ( slice, f)
135
+ }
136
+ } ) { |x| x }
133
137
}
0 commit comments