X-Git-Url: https://git.xandkar.net/?p=hope.git;a=blobdiff_plain;f=src%2Fhope_option.erl;h=c461d04d1b70d3bbd292e954aa21c55eb4921c5e;hp=622c06df92fd59b2df7df5c3a1e80aba8876fe65;hb=ed9905af6fa1dba6f89759d6dbfc970426122bde;hpb=2a40de4f9404d67967ad486d7d10b354791105fe diff --git a/src/hope_option.erl b/src/hope_option.erl index 622c06d..c461d04 100644 --- a/src/hope_option.erl +++ b/src/hope_option.erl @@ -18,14 +18,20 @@ . +-spec put(A, fun((A) -> boolean())) -> + t(A). put(X, F) -> case F(X) of true -> {some, X} ; false -> none end. +-spec get(t(A), Default :: A) -> + A. get({some, X}, _) -> X; get(none , Y) -> Y. +-spec map(t(A), fun((A) -> (B))) -> + t(B). map({some, X}, F) -> {some, F(X)}; map(none , _) -> none.