I'm trying to utilize the Maybe type in Haskell. I have a lookup for key, value tuples that returns a Maybe. How do I access the data that was wrapped by Maybe? For example I want to add the integer contained by Maybe with another integer.
It's common for JavaScript code to introduce “optional” values so that you have the option of leaving out the value or passing null instead. Using Flow you can use Maybe types for these values. Maybe types work with any other type by simply prefixing it with a question mark ?
In FP we often loosely say things like "arrays are monads" or "maybe values are monadic" etc. However, speaking more strictly, it is not the values (like [1, 2, 3] , Nothing , or Just(6) ) that are monads, but the context (the Array or Maybe "namespace" as you put it).
Alternatively you can pattern match:
case maybeValue of Just value -> ... Nothing -> ...
You could use Data.Maybe.fromMaybe
, which takes a Maybe a
and a value to use if it is Nothing
. You could use the unsafe Data.Maybe.fromJust
, which will just crash if the value is Nothing
. You likely want to keep things in Maybe
. If you wanted to add an integer in a Maybe
, you could do something like
f x = (+x) <$> Just 4
which is the same as
f x = fmap (+x) (Just 4)
f 3
will then be Just 7
. (You can continue to chain additional computations in this manner.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With