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