From 5bdaa1e4ffe40add10f000ee993e6b500c419a37 Mon Sep 17 00:00:00 2001 From: Joe Zhao Date: Sat, 9 Aug 2014 10:58:03 +0800 Subject: add files from home for previous chapters and sandboxes --- fib.hs | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 fib.hs (limited to 'fib.hs') diff --git a/fib.hs b/fib.hs new file mode 100644 index 0000000..647f75e --- /dev/null +++ b/fib.hs @@ -0,0 +1,13 @@ +fib n = fi n 1 1 + +fi 1 x y = x +fi a x y = fi (a-1) (x+y) x + +ffib n = ffi n 1 1 1 0 1 0 + +ffi 1 a b c d x y = (a*x + b*y) +ffi n a b c d x y = + if odd n + then ffi (div n 2) (a*a + b*c) (a*b + b*d) (a*c + c*d) (d*d + b*c) (a*x + b*y) (c*x + d*y) + else ffi (div n 2) (a*a + b*c) (a*b + b*d) (a*c + c*d) (d*d + b*c) x y + -- cgit v1.2.3-70-g09d2