Elixir:
コードを関数に整理する

方法:

簡単なElixirの関数を作ってみましょう。単語を大文字にする関数です:

defmodule StringUtils do
  def capitalize_words(sentence) do
    sentence
    |> String.split()
    |> Enum.map(&String.capitalize/1)
    |> Enum.join(" ")
  end
end

IO.puts StringUtils.capitalize_words("hello elixir world")

出力:

Hello Elixir World

ここでは、単語の大文字化ロジックをcapitalize_wordsという関数にきちんとパッケージ化しました。

深堀り

Elixirでは、そして広い意味でのErlang VMエコシステムでは、関数は第一級市民です。これは、問題をより小さい、管理しやすく、独立したピースに分解するという哲学を引き継いでいます。歴史的に、この関数的アプローチには、コードをデータとして扱う哲学を推進するラムダ計算やLispにルーツがあります。

コードをまとめる別の方法は、繰り返しタスクや並行タスクのためにそれぞれElixirでマクロやプロセスを使用することです。実装面では、Elixirの関数はパターンマッチングを処理でき、異なる引数(アリティ)を受け取ることができ、それにより彼らに多用性を与えています。

参照