Skip to content

Instantly share code, notes, and snippets.

@punksta
Created September 17, 2016 21:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save punksta/b0cbfeb49899a0833c708f2bebb68693 to your computer and use it in GitHub Desktop.
Save punksta/b0cbfeb49899a0833c708f2bebb68693 to your computer and use it in GitHub Desktop.
fibonacci recursion with accumulators
fibonacci :: Integer -> Integer
fibonacci 0 = 0
fibonacci n | n > 0 = fibInner n 1 1
| n < 0 = fibInner n 1 1
fibInner :: Integer -> Integer -> Integer -> Integer
fibInner (-1) r r2 = r
fibInner 1 r r2 = r
fibInner n r r2 | n > 0 = helper (n - 1) r2 (r + r2)
| n < 0 = - helper (n + 1) r2 (r + r2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment