I have the following simple code
import Data.String.Regex
import Data.Array
last <$> match someRegex " 1"
where
match someRegex " 1"
returns something like
Just ([Just (" 1"),Just (" "),Just ("1")])
and
last <$> match someRegex " 1"
returns something like
Just (Just (Just (" 1")))
Now I have a deeply nested Maybe. Which makes it sort of hard to work with (even using functors). I have written myself a pair of helper functions - but I am sort of unhappy with that. It somehow doesn't feel right.
extract j = do
case j of
Nothing -> Nothing
Just a -> a
extract2 jj = extract $ extract jj
And then using it like this
extract2 $ last <$> match someRegex " 1"
Is there a better/idiomatic way to do such things in Purescript/Haskell?
Perhaps you're looking for the join function:
http://pursuit.purescript.org/packages/purescript-control/0.3.0/docs/Control.Bind#d:join
join collapses two layers of a structure down to a single layer, combining any effects. In the case of Maybe, that means that the resulting value will not be Nothing only if both layers were not Nothing.
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