aboutsummaryrefslogtreecommitdiffhomepage
path: root/std/Option.bruijn
diff options
context:
space:
mode:
Diffstat (limited to 'std/Option.bruijn')
-rw-r--r--std/Option.bruijn6
1 files changed, 6 insertions, 0 deletions
diff --git a/std/Option.bruijn b/std/Option.bruijn
index 26de3de..b48fdc2 100644
--- a/std/Option.bruijn
+++ b/std/Option.bruijn
@@ -10,30 +10,36 @@ some [[[0 2]]]
# checks whether option is none
none? [0 true [false]]
+
:test (none? none) (true)
:test (none? (some [[0]])) (false)
# checks whether option is some
some? [0 false [true]]
+
:test (some? none) (false)
:test (some? (some [[0]])) (true)
# applies a function to the value in option
map [[0 none [some (2 0)]]]
+
:test (map [[1]] (some [[0]])) (some [[[0]]])
:test (map [[1]] none) (none)
# applies a function to the value in option or returns first arg if none
map-or [[[0 2 1]]]
+
:test (map-or [[[2]]] [[1]] (some [[0]])) ([[[0]]])
:test (map-or [[[2]]] [[1]] none) ([[[2]]])
# extracts value from option or returns first argument if none
unwrap-or [[0 1 I]]
+
:test (unwrap-or false (some true)) (true)
:test (unwrap-or false none) (false)
# applies encapsulated value to given function
apply [[1 none 0]]
+
:test (apply none [some ([[1]] 0)]) (none)
:test (apply (some [[0]]) [some ([[1]] 0)]) (some [[[0]]])