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の関数はパターンマッチングを処理でき、異なる引数(アリティ)を受け取ることができ、それにより彼らに多用性を与えています。