Elixir と Ruby のsumの比較

2017年7月5日 Posted by PURGE

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です