Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ----------------------------- 1.9 ---------------------------------
- f2p :: (a -> (b,c)) -> (a -> b, a -> c)
- f2p f = (fst . f, snd . f)
- testF :: Double -> (Integer, String)
- testF d = (round d, show d)
- p2f :: (a -> b, a -> c) -> (a -> (b,c))
- p2f (f,g) = (\x -> (f x, g x))
- ---------------------------- 1.10 --------------------------------
- s2p :: (Either b c -> a) -> (b -> a, c -> a)
- s2p f = (f . Left, f . Right)
- p2s :: (b -> a, c -> a) -> (Either b c -> a)
- p2s (f,g) = (\x -> either f g x)
- --------------------------- 1.11 ---------------------------------
- -- a : Card A
- -- b : Card B
- -- c : Card C
- -- Either a b : A + B
- -- (a,b) : A * B
- -- a -> b :
- --------------------------- 1.12 ---------------------------------
- isoR :: (Bool -> t) -> (t,t)
- isoR f = (f False, f True)
- isoL :: (t,t) -> (Bool -> t)
- isoL (x,y) = (\b -> if b then y else x)
- --------------------------- 1.13 --------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement