diff options
| author | Paul Stansifer <paul.stansifer@gmail.com> | 2011-06-20 17:26:17 -0700 |
|---|---|---|
| committer | Graydon Hoare <graydon@mozilla.com> | 2011-06-28 15:02:12 +0000 |
| commit | c3901cdf8e1723dc07b5bfa202fe31b573d44561 (patch) | |
| tree | 76ce9e746aee876d0dd7e2e8290f12bc434b9f49 /src/lib/vec.rs | |
| parent | b6326817803079ed33b13b87429ef7d77ce5f4cb (diff) | |
| download | rust-c3901cdf8e1723dc07b5bfa202fe31b573d44561.tar.gz rust-c3901cdf8e1723dc07b5bfa202fe31b573d44561.zip | |
Add simple syntax extension (#simplext)
Diffstat (limited to 'src/lib/vec.rs')
| -rw-r--r-- | src/lib/vec.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/lib/vec.rs b/src/lib/vec.rs index 3be6c1ef9ad..db57953a962 100644 --- a/src/lib/vec.rs +++ b/src/lib/vec.rs @@ -228,6 +228,24 @@ fn find[T](fn(&T) -> bool f, &vec[T] v) -> option::t[T] { ret none[T]; } +fn position[T](&T x, &array[T] v) -> option::t[uint] { + let uint i = 0u; + while (i < len(v)) { + if (x == v.(i)) { ret some[uint](i); } + i += 1u; + } + ret none[uint]; +} + +fn position_pred[T](fn (&T) -> bool f, &vec[T] v) -> option::t[uint] { + let uint i = 0u; + while (i < len(v)) { + if (f(v.(i))) { ret some[uint](i); } + i += 1u; + } + ret none[uint]; +} + fn member[T](&T x, &array[T] v) -> bool { for (T elt in v) { if (x == elt) { ret true; } } ret false; |
