622c06df92fd59b2df7df5c3a1e80aba8876fe65
[hope.git] / src / hope_option.erl
1 -module(hope_option).
2
3
4 -export_type(
5 [ t/1
6 ]).
7
8 -export(
9 [ put/2
10 , get/2
11 , map/2
12 ]).
13
14
15 -type t(A) ::
16 none
17 | {some, A}
18 .
19
20
21 put(X, F) ->
22 case F(X)
23 of true -> {some, X}
24 ; false -> none
25 end.
26
27 get({some, X}, _) -> X;
28 get(none , Y) -> Y.
29
30 map({some, X}, F) -> {some, F(X)};
31 map(none , _) -> none.
This page took 0.055966 seconds and 3 git commands to generate.