File: functorOperators.hs

package info (click to toggle)
ghc 9.10.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 168,924 kB
  • sloc: haskell: 713,548; ansic: 84,223; cpp: 30,255; javascript: 9,003; sh: 7,870; fortran: 3,527; python: 3,228; asm: 2,523; makefile: 2,326; yacc: 1,570; lisp: 532; xml: 196; perl: 111; csh: 2
file content (38 lines) | stat: -rw-r--r-- 1,151 bytes parent folder | download | duplicates (5)
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]