22 lines
351 B
Plaintext
22 lines
351 B
Plaintext
pub fn map2(
|
|
opt_a: Option<a>,
|
|
opt_b: Option<b>,
|
|
f: fn(a, b) -> result,
|
|
) -> Option<result> {
|
|
when opt_a is {
|
|
None ->
|
|
None
|
|
Some(a) ->
|
|
when opt_b is {
|
|
None ->
|
|
None
|
|
Some(b) ->
|
|
Some(f(a, b))
|
|
}
|
|
}
|
|
}
|
|
|
|
test map2_3() {
|
|
map2(Some(14), Some(42), fn(a, b) { (a, b) }) == Some((14, 42))
|
|
}
|