
25 Jun
2015
25 Jun
'15
6:48 a.m.
module BasicApplicative where -- 2 arg upd2:: Int -> Int -> Int upd2 x1 x2 = x1 * x2 -- 3 arg upd3:: Int -> Int -> Int -> Int upd3 x1 x2 x3 = x1 * x2 + x3 -- pure pureMaybe::Int -> Maybe Int pureMaybe = pure pureList::Int -> [Int] pureList = pure -- maybe maybe2::Maybe Int -> Maybe Int -> Maybe Int maybe2 mi1 mi2 = upd2 <$> mi1 <*> mi2 -- list list2::[Int] -> [Int] -> [Int] list2 l1 l2 = upd2 <$> l1 <*> l2 -- same result as list2 list2p::[Int] -> [Int] -> [Int] list2p l1 l2 = pure upd2 <*> l1 <*> l2 list3::[Int] -> [Int] -> [Int] -> [Int] list3 l1 l2 l3 = upd3 <$> l1 <*> l2 <*> l3