
28 Feb
2010
28 Feb
'10
9:16 p.m.
On Sun, Feb 28, 2010 at 10:06:06PM +0100, edgar klerks wrote:
I have created a function mkc:
mkc :: (a -> b) -> a -> m b mkc f = (\x -> return $ f x)
Actually the type is mkc :: Monad m => (a -> b) -> a -> m b and you could define it as mkc = (return .) However, we usually don't need this function.
which works wonderful in statements like:
number <- many1 digit >>= mkc(read)
We prefer to right number <- fmap read (many1 digit) or, even better yet import Control.Applicative number <- read <$> many1 digit Note that (<$>) :: Functor f => (a -> b) -> (f a -> f b) f <$> x = fmap f x Cheers, -- Felipe.