Skip to content

Commit c7545c3

Browse files
committed
Ch6 Ex2
1 parent fdec922 commit c7545c3

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

Ch6/src/Lib.hs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ module Lib
22
( knapsack01,
33
example,
44
fib,
5-
fibs1
5+
fibs1,
6+
fibs2
67
) where
78

89
import Data.Array
@@ -35,3 +36,12 @@ fibInner n a b = fibInner (n - 1) b (a + b)
3536
-- The infinite list of all Fibonacci numbers
3637
fibs1 :: [Integer]
3738
fibs1 = map fib [1..]
39+
40+
-- Exercise 2
41+
42+
-- More efficient implementation for fibs
43+
fibs2 :: [Integer]
44+
fibs2 = fibs2Inner 1 1
45+
46+
fibs2Inner :: Integer -> Integer -> [Integer]
47+
fibs2Inner a b = a: (fibs2Inner b (a + b))

Ch6/test/Spec.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ tests = TestList
77
"fib 0" ~: fib 0 ~?= 0,
88
"fib 1" ~: fib 1 ~?= 1,
99
"fib 7" ~: fib 7 ~?= 13,
10-
"take 5 fibs1" ~: take 5 fibs1 ~?= [1, 1, 2, 3, 5]
10+
"take 5 fibs1" ~: take 5 fibs1 ~?= [1, 1, 2, 3, 5],
11+
"take 5 fibs2" ~: take 5 fibs2 ~?= [1, 1, 2, 3, 5]
1112
]
1213

1314
main = do

0 commit comments

Comments
 (0)