Elixir と Ruby のsumの比較

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]

This entry was posted in Elixir, Ruby, 技術情報. Bookmark the permalink.

コメントを残す

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