oursh
oursh copied to clipboard
Functions
POSIX shell language defines functions like foo() { ... }
. We must support them.
- [ ] #54
- [ ] #55
Related to #27.
Can be used with #!
blocks.
fib() {#!/usr/bin/env elixir
defmodule Math do
def fibfast(n) do fib_acc(1, 0, n) end
def fib_acc(a, b, 0) do a + b end
def fib_acc(a, b, n) do fib_acc(b, a+b, n-1) end
def fibslow(0) do 1 end
def fibslow(1) do 1 end
def fibslow(n) do fibslow(n-1) + fibslow(n-2) end
end
print_fib = fn(n) ->
n |> Math.fibfast() |> IO.puts()
end
print_fib.($1)
}
fib 10