30 lines
518 B
Plaintext
30 lines
518 B
Plaintext
fn unwrap {
|
|
((:some, value)) -> value
|
|
((:ok, value)) -> value
|
|
}
|
|
|
|
fn default (default_value) -> fn (maybe) -> match maybe with {
|
|
(:ok, value) -> value
|
|
(:err, _) -> default_value
|
|
nil -> default_value
|
|
value -> value
|
|
}
|
|
|
|
fn some (value) -> (:some, value)
|
|
|
|
fn ok (value) -> (:ok, value)
|
|
|
|
let foo = unwrap ((:ok, 42))
|
|
|
|
print (:foo, foo)
|
|
|
|
let bar = unwrap ((:some, 23))
|
|
|
|
print (:bar, bar)
|
|
|
|
let baz = do 69 > default (12) > print (:baz, _)
|
|
|
|
let quux = do nil > default (12) > print (:quux, _)
|
|
|
|
unwrap ((:err, "message"))
|