@@ -22,8 +22,8 @@ pub enum List<T> {
22
22
Nil ,
23
23
}
24
24
25
- /// Cregate a list from a vector
26
- pub fn from_vec < T : Copy > ( v : & [ T ] ) -> @List < T > {
25
+ /// Create a list from a vector
26
+ pub pure fn from_vec < T : Copy > ( v : & [ T ] ) -> @List < T > {
27
27
vec:: foldr ( v, @Nil :: < T > , |h, t| @Cons ( * h, t) )
28
28
}
29
29
@@ -53,7 +53,7 @@ pub fn foldl<T: Copy, U>(z: T, ls: @List<U>, f: fn(&T, &U) -> T) -> T {
53
53
* When function `f` returns true then an option containing the element
54
54
* is returned. If `f` matches no elements then none is returned.
55
55
*/
56
- pub fn find < T : Copy > ( ls : @List < T > , f : fn ( & T ) -> bool ) -> Option < T > {
56
+ pub pure fn find < T : Copy > ( ls : @List < T > , f : fn ( & T ) -> bool ) -> Option < T > {
57
57
let mut ls = ls;
58
58
loop {
59
59
ls = match * ls {
@@ -88,7 +88,7 @@ pub pure fn is_not_empty<T: Copy>(ls: @List<T>) -> bool {
88
88
}
89
89
90
90
/// Returns the length of a list
91
- pub fn len < T > ( ls : @List < T > ) -> uint {
91
+ pub pure fn len < T > ( ls : @List < T > ) -> uint {
92
92
let mut count = 0 u;
93
93
iter ( ls, |_e| count += 1 u) ;
94
94
count
@@ -131,7 +131,7 @@ pure fn push<T: Copy>(ll: &mut @list<T>, vv: T) {
131
131
*/
132
132
133
133
/// Iterate over a list
134
- pub fn iter < T > ( l : @List < T > , f : fn ( & T ) ) {
134
+ pub pure fn iter < T > ( l : @List < T > , f : fn ( & T ) ) {
135
135
let mut cur = l;
136
136
loop {
137
137
cur = match * cur {
@@ -145,7 +145,7 @@ pub fn iter<T>(l: @List<T>, f: fn(&T)) {
145
145
}
146
146
147
147
/// Iterate over a list
148
- pub fn each < T > ( l : @List < T > , f : fn ( & T ) -> bool ) {
148
+ pub pure fn each < T > ( l : @List < T > , f : fn ( & T ) -> bool ) {
149
149
let mut cur = l;
150
150
loop {
151
151
cur = match * cur {
0 commit comments