From 98329e0a3dd4f78b5d815ac3896272ec70904901 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Thu, 11 Dec 2025 10:28:11 +0100 Subject: Add remaining haskell book exercises --- Haskell-book/18/Functions.hs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Haskell-book/18/Functions.hs (limited to 'Haskell-book/18/Functions.hs') diff --git a/Haskell-book/18/Functions.hs b/Haskell-book/18/Functions.hs new file mode 100644 index 0000000..841ecbd --- /dev/null +++ b/Haskell-book/18/Functions.hs @@ -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 -- cgit v1.2.3