Hello.
I need a function findIndexM, similar to findIndex from the standard
module Data.List, but which works with a monadic predicate to test list
elements.
findIndex :: (a -> Bool) -> [a] -> Maybe Int
findIndexM :: (Monad m, Num a) => (t -> m Bool) -> [t] -> m (Maybe a)
findIndexM p xs = go 0 xs
where
go _ [] = return Nothing
go n (x:xs) = do res <- p x
if res then return (Just n) else go (n+1) xs
How can this function be rewritten using combinators?
Romildo
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe