Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Reader
--ghc 7.10 import Data.Char main = do print $ composed "hello" print $ fmapped "world" print $ tupled "venice" print $ tupled' "florence" print $ tupled'' "berlin" cap :: [Char] -> [Char] cap xs = map toUpper xs rev :: [Char] -> [Char] rev xs = reverse xs composed = cap . rev fmapped = fmap cap rev tupled = (,) <$> cap <*> rev tupled' = do x <- cap y <- rev return (x, y) tupled'' = cap >>= \x -> rev >>= \y -> return (x, y) newtype Reader r a = Reader { runReader :: r -> a } instance Functor (Reader r) where fmap f (Reader ra) = Reader $ f . ra instance Applicative (Reader r) where pure x = Reader $ const x (Reader f) <*> (Reader ra) = Reader $ \r -> (f r) (ra r) myLiftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c myLiftA2 f fa fb = f <$> fa <*> fb asks :: (r -> a) -> Reader r a asks f = Reader f instance Monad (Reader r) where return = pure (Reader ra) >>= arb = Reader $ \r -> runReader (arb (ra r)) r -- getDogRM = liftM2 Dog dogName address
run
|
edit
|
history
|
help
0
Kleintjes
znajdywacz trojkatow prostokatnych
folder
first haskell program
tried some polynoms 2: now with some `*` and foldr(-p)
FizzBuzzkell
project euler 8, haskell
Split into n distinct parts
Forkitup
(-‿‿-)