JSFiddle - React, Tailwind, and code Playground

by kman007_us

CoffeeScript

# [0, 1, 1, 2, 3, 5, 8, 13, ...]
fibonacci = (n) ->
  if (n < 2)
    n
  else
    fibonacci(n-2) + fibonacci(n-1)

console.log fibonacci(4)

memoized = (fn) ->
  do (lookupTable = {}, key = undefined, value = undefined) ->
    ->
      key = JSON.stringify(arguments)
      console.log "memoized looking up key..."
      lookupTable[key] or= fn.apply(this, arguments)

fastFibonacci =
  memoized (n) ->
    if n < 2
      n
    else
      fastFibonacci(n-2) + fastFibonacci(n-1)

console.log fastFibonacci(45)

quickFibonacci = memoized(fibonacci)  # only prints out `memoized looking up key...` 1x

console.log quickFibonacci(10)