Skip to content

Instantly share code, notes, and snippets.

@kyanny
Created March 13, 2012 01:27
Show Gist options
  • Save kyanny/2026028 to your computer and use it in GitHub Desktop.
Save kyanny/2026028 to your computer and use it in GitHub Desktop.
Elixir fibonacci #1
defmodule Fib do
def fib(0) do 0 end
def fib(1) do 1 end
def fib(n) do fib(n-1) + fib(n-2) end
end
IO.puts Fib.fib(10)
@Lawrence-2001
Copy link

Lawrence-2001 commented Aug 1, 2023

defmodule Fibonacci do
  def find(n) do
    list = [1, 0]
    fib(list, n)
  end
  
  def fib(_list, n) when n < 0 do
    []
  end

  def fib(_list, 0) do
    [0]
  end

  def fib(list, 1) do
    list
  end

  def fib(list, n) do
    [first_elem, second_elem | _] = list
    fib([first_elem + second_elem | list], n - 1)
  end
end

10 |> Fibonacci.find() |> IO.inspect()

@Lawrence-2001
Copy link

Lawrence-2001 commented Aug 1, 2023

defmodule Fib do
    def run(a, b, n) do
        case n do
            1 ->
                b
            _ ->
                run(b, a + b, n - 1)
        end
    end
end

Fib.run(0,1,10) |> IO.puts()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment