diff options
Diffstat (limited to 'std/Option.bruijn')
-rw-r--r-- | std/Option.bruijn | 6 |
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]]]) |