Elixir では繰り返しを再帰で行う。例えば、文字列を n 回出力するスクリプトはこんな風になる。
defmodule Recursion do
  def print_multiple_times(msg, n) when n <= 1 do
    IO.puts msg
  end
  def print_multiple_times(msg, n) do
    IO.puts msg
    print_multiple_times(msg, n - 1)
  end
end
Recursion.print_multiple_times("Hello!", 3)
^o^ > elixir recursion.exs Hello! Hello! Hello!
リストの場合には [head|tail] と、終端条件には [] (空リスト)を使えばいい。
defmodule Math do
  def sum_list([], accum) do
    accum
  end
  def sum_list([head|tail], accum) do
    sum_list(tail, head + accum)
  end
end
IO.puts Math.sum_list([1, 2, 3], 0)
^o^ > elixir sum_list.exs 6
再帰についてはこれくらいでいいだろう。