1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
-- Test infix operators of 'Functor'
import Data.Functor
main :: IO ()
main = do
testInfixFmap
testFlippedInfixFmap
testInfixReplace
testFlippedInfixReplace
testInfixFmap :: IO ()
testInfixFmap = do
print "<$> tests:"
print $ (+ 1) <$> Just 2 -- => Just 3
print (((+ 1) <$> Right 3) :: Either Int Int) -- => Right 4
print $ (+ 1) <$> [1, 2, 3] -- => [2,3,4]
testFlippedInfixFmap :: IO ()
testFlippedInfixFmap = do
print "<&> tests:"
print $ Just 2 <&> (+ 1) -- => Just 3
print ((Right 3 <&> (+ 1)) :: Either Int Int) -- => Right 4
print $ [1, 2, 3] <&> (+ 1) -- => [2,3,4]
testInfixReplace :: IO ()
testInfixReplace = do
print "<$ tests:"
print $ 42 <$ Just 1 -- => Just 42
print ((42 <$ Right 1) :: Either Int Int) -- => Right 42
print $ 42 <$ [1, 2, 3] -- => [42,42,42]
testFlippedInfixReplace :: IO ()
testFlippedInfixReplace = do
print "$> tests:"
print $ Just 1 $> 42 -- => Just 42
print ((Right 1 $> 42) :: Either Int Int) -- => Right 42
print $ [1, 2, 3] $> 42 -- => [42,42,42]
|