[Haskell-beginners] Functions as Applicatives

Imants Cekusins imantc at gmail.com
Mon Aug 22 17:34:11 UTC 2016


Hello Ollumide,

this may help: it builds and runs anyway.


​{-
instance Applicative ((->) r) where
    pure x = (\_ -> x)
    f <*> g = \x -> f x (g x)

with the following expression

ghci> :t (+) <$> (+3) <*> (*100)
(+) <$> (+3) <*> (*100) :: (Num a) => a -> a
ghci> (+) <$> (+3) <*> (*100) $ 5
508

-}

f::Num f => f -> f -> f
f = (+)

g::Num g => g -> g
g = (+ 3)

h::Num h => h -> h
h = (* 100)


fg::Num a =>     a -> a -> a
fg = f <$> g
{-  fg a b = a + (b + 3)
    fg a = \b -> a + (b + 3)
-}

fgh::Num a =>  a -> a
fgh = fg <*> h
{-  fgh b = fg (b * 100)
    fgh = \b -> fg (b * 100)
-}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20160822/6ea7ca9b/attachment-0001.html>


More information about the Beginners mailing list