Elixir と Ruby のsumの比較。
まだ、関数型プログラミングの記述、特に再帰には慣れていない。
Ruby
sum.rb
def sum(n) result = 0 (1..n).each do |n| result = result + n end result end n = 5 puts sum(n) # => 15
Elixir
sum.exs
defmodule Sum do def sum(0), do: 0 def sum(n), do: n + sum(n - 1) end n = 5 IO.puts(Sum.sum(n)) # => 15
または、わかりやすく書くと
defmodule Sum do def sum(0) do 0 end def sum(n) do n + sum(n - 1) end end n = 5 IO.puts(Sum.sum(n)) # => 15