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 могут обрабатывать сопоставление с образцом и принимать разные аргументы (арность), предоставляя им универсальность.

См. также