Skip to content

Instantly share code, notes, and snippets.

@SnowOnion
Created July 27, 2016 08:17
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 SnowOnion/f3eb1fe5d91cd0f794201d021a787eab to your computer and use it in GitHub Desktop.
Save SnowOnion/f3eb1fe5d91cd0f794201d021a787eab to your computer and use it in GitHub Desktop.
Calculate Fibonacci number, in Haskell, with memoization
-- via https://wiki.haskell.org/Memoization
-- P.S. I just realized memoization != memorization !
-- https://en.wikipedia.org/wiki/Memoization && https://en.wikipedia.org/wiki/Memorization
memoized_fib :: Int -> Integer
memoized_fib = (map fib [0 ..] !!)
where fib 0 = 0
fib 1 = 1
fib n = memoized_fib (n-2) + memoized_fib (n-1)
-- It's for some online math problem. The organizer does not recommend discussing solutions outside the forum.
main=print $ sum.(filter even) $ takeWhile (<=4000000) $ map memoized_fib [0..]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment