stefan@stefans-MacBook-Pro pf-2021-2022 % ghci ghci GHCi, version 8.10.7: https://www.haskell.org/ghc/ :? for help Prelude> :l curs2.hs :l curs2.hs [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> fibo 3 fibo 3 3 *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> fibo''' 3 fibo''' 3 3 *Main> otherwise otherwise True *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> fibo'''' 3 fibo'''' 3 3 *Main> fibo'''' 3 fibo'''' 3 3 *Main> fibo'''' 4 fibo'''' 4 5 *Main> fibo'''' 5 fibo'''' 5 8 *Main> fibo'''' 6 fibo'''' 6 13 *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> fibo5 6 fibo5 6 13 *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> cmmmdc 12 24 cmmmdc 12 24 :15:1: error: • Variable not in scope: cmmmdc :: t0 -> t1 -> t • Perhaps you meant ‘cmmdc’ (line 101) *Main> cmmmdc 12 42 cmmmdc 12 42 :16:1: error: • Variable not in scope: cmmmdc :: t0 -> t1 -> t • Perhaps you meant ‘cmmdc’ (line 101) *Main> :r :r Ok, one module loaded. *Main> cmmmdc 12 42 cmmmdc 12 42 :18:1: error: • Variable not in scope: cmmmdc :: t0 -> t1 -> t • Perhaps you meant ‘cmmdc’ (line 101) *Main> cmmdc 12 42 cmmdc 12 42 6 *Main> 6 * 7 6 * 7 42 *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> cmmdc' 12 42 cmmdc' 12 42 6 *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> sumn 4 sumn 4 10 *Main> sumn 5 sumn 5 15 *Main> (3, 4) (3, 4) (3,4) *Main> (True, False) (True, False) (True,False) *Main> ('a', 'b') ('a', 'b') ('a','b') *Main> (True, 'b') (True, 'b') (True,'b') *Main> :t (True, False) :t (True, False) (True, False) :: (Bool, Bool) *Main> :t (True, 'b') :t (True, 'b') (True, 'b') :: (Bool, Char) *Main> (1, 2, 3) (1, 2, 3) (1,2,3) *Main> ('a', True, 3) ('a', True, 3) ('a',True,3) *Main> ('a', True, 3, 13.4) ('a', True, 3, 13.4) ('a',True,3,13.4) *Main> fst (3, 4) fst (3, 4) 3 *Main> fst ('a', 4) fst ('a', 4) 'a' *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) curs2.hs:151:1: error: • Couldn't match expected type ‘Integer’ with actual type ‘Integer -> Integer’ • The equation(s) for ‘sumna’ have two arguments, but its type ‘Integer -> Integer’ has only one | 151 | sumna 0 a = a | ^^^^^^^^^^^^^... curs2.hs:152:13: error: • Couldn't match expected type ‘Integer -> Integer’ with actual type ‘Integer’ • The function ‘sumna’ is applied to two arguments, but its type ‘Integer -> Integer’ has only one In the expression: sumna (n - 1) (a + n) In an equation for ‘sumna’: sumna n a = sumna (n - 1) (a + n) | 152 | sumna n a = sumna (n - 1) (a + n) | ^^^^^^^^^^^^^^^^^^^^^ Failed, no modules loaded. Prelude> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> myfst (3, 4) myfst (3, 4) 3 *Main> myfst' (3, 4) myfst' (3, 4) 3 *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> myfst'' (3, 4) myfst'' (3, 4) 3 *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> mysum3 (1, 3, 5) mysum3 (1, 3, 5) 9 *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> cmmdc'' (14, 42) cmmdc'' (14, 42) 14 *Main> cmmdc'' (12, 42) cmmdc'' (12, 42) 6 *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> swap (3, 4) swap (3, 4) (4,3) *Main> swap (swap (3, 4)) swap (swap (3, 4)) (3,4) *Main> [1, 2, 4, 6, 8, 3, 4, 3] [1, 2, 4, 6, 8, 3, 4, 3] [1,2,4,6,8,3,4,3] *Main> [True, False, False] [True, False, False] [True,False,False] *Main> [True, 1] [True, 1] :53:8: error: • No instance for (Num Bool) arising from the literal ‘1’ • In the expression: 1 In the expression: [True, 1] In an equation for ‘it’: it = [True, 1] *Main> [] [] [] *Main> length [] length [] 0 *Main> length [1, 2, 5] length [1, 2, 5] 3 *Main> length [1, 2, 5, 10] length [1, 2, 5, 10] 4 *Main> head [1, 5, 19] head [1, 5, 19] 1 *Main> tail [1, 5, 19] tail [1, 5, 19] [5,19] *Main> [ [], [1], [2, 3, 4] ] [ [], [1], [2, 3, 4] ] [[],[1],[2,3,4]] *Main> length [ [], [1], [2, 3, 4] ] length [ [], [1], [2, 3, 4] ] 3 *Main> head [ [], [1], [2, 3, 4] ] head [ [], [1], [2, 3, 4] ] [] *Main> head [] head [] *** Exception: Prelude.head: empty list *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> sumnp 4 sumnp 4 10 *Main> sumnp 1 sumnp 1 0 *Main> sumnp 0 sumnp 0 *** Exception: curs2.hs:(313,1)-(314,34): Non-exhaustive patterns in function sumnp *Main> tail [ [], [1], [2, 3, 4] ] tail [ [], [1], [2, 3, 4] ] [[1],[2,3,4]] *Main> tail [] tail [] *** Exception: Prelude.tail: empty list *Main> null [] null [] True *Main> null [1, 2, 3] null [1, 2, 3] False *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> sumlist [4, 7, 19] sumlist [4, 7, 19] 30 *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> sumlist'' [4, 7, 19] sumlist'' [4, 7, 19] 30 *Main> True True True *Main> :t True :t True True :: Bool *Main> [True] [True] [True] *Main> :t [True] :t [True] [True] :: [Bool] *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> a1 a1 13 *Main> wishful 10 wishful 10 ^C ^C^CInterrupted. *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) Ok, one module loaded. *Main> a2 a2 ^C ^C^CInterrupted. *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) curs2.hs:378:1: warning: [-Woverlapping-patterns] Pattern match is redundant In an equation for ‘sumninf’: sumninf 0 = ... | 378 | sumninf 0 = 0 | ^^^^^^^^^^^^^ Ok, one module loaded. *Main> :r :r [1 of 1] Compiling Main ( curs2.hs, interpreted ) curs2.hs:378:1: warning: [-Woverlapping-patterns] Pattern match is redundant In an equation for ‘sumninf’: sumninf 0 = ... | 378 | sumninf 0 = 0 | ^^^^^^^^^^^^^ Ok, one module loaded. *Main>