aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/_vec.rs2
-rw-r--r--src/lib/option.rs12
2 files changed, 9 insertions, 5 deletions
diff --git a/src/lib/_vec.rs b/src/lib/_vec.rs
index 6fc1d700..cc8fabca 100644
--- a/src/lib/_vec.rs
+++ b/src/lib/_vec.rs
@@ -266,7 +266,7 @@ fn unzip[T, U](&vec[tup(T, U)] v) -> tup(vec[T], vec[U]) {
fn or(&vec[bool] v) -> bool {
auto f = orb;
- be _vec.foldl[bool, bool](f, false, v);
+ ret _vec.foldl[bool, bool](f, false, v);
}
fn clone[T](&vec[T] v) -> vec[T] {
diff --git a/src/lib/option.rs b/src/lib/option.rs
index 66a41bca..e214c774 100644
--- a/src/lib/option.rs
+++ b/src/lib/option.rs
@@ -39,12 +39,16 @@ fn is_none[T](&t[T] opt) -> bool {
}
fn from_maybe[T](&T def, &t[T] opt) -> T {
- alt(opt) {
- case (none[T]) { ret def; }
- case (some[T](?t)) { ret t; }
- }
+ auto f = bind util.id[T](_);
+ ret maybe[T, T](def, f, opt);
}
+fn maybe[T, U](&U def, fn(&T) -> U f, &t[T] opt) -> U {
+ alt (opt) {
+ case (none[T]) { ret def; }
+ case (some[T](?t)) { ret f(t); }
+ }
+}
// Local Variables:
// mode: rust;
// fill-column: 78;