Add remaining haskell book exercises
This commit is contained in:
21
Haskell-book/18/Functions.hs
Normal file
21
Haskell-book/18/Functions.hs
Normal file
@@ -0,0 +1,21 @@
|
||||
module Functions where
|
||||
|
||||
j :: Monad m => m (m a) -> m a
|
||||
j = flip (>>=) id
|
||||
|
||||
l1 :: Monad m => (a -> b) -> m a -> m b
|
||||
l1 = fmap
|
||||
|
||||
l2 :: Monad m => (a -> b -> c) -> m a -> m b -> m c
|
||||
l2 f xs ys = f <$> xs <*> ys
|
||||
|
||||
a :: Monad m => m a -> m (a -> b) -> m b
|
||||
a xs f = f <*> xs
|
||||
|
||||
meh :: Monad m => [a] -> (a -> m b) -> m [b]
|
||||
meh xs f = rec $ fmap f xs
|
||||
where rec [] = return []
|
||||
rec (x:xs) = (:) <$> x <*> (rec xs)
|
||||
|
||||
flipType :: Monad m => [m a] -> m [a]
|
||||
flipType = flip meh id
|
||||
Reference in New Issue
Block a user