Elixir:
Code organiseren in functies

Hoe te:

Laten we een eenvoudige Elixir-functie maken om woorden te kapitaliseren:

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")

Output:

Hello Elixir World

Hier hebben we de logica om woorden te kapitaliseren netjes verpakt in een functie genaamd capitalize_words.

Diepere Duik

In Elixir, en in het bredere Erlang VM ecosysteem, zijn functies burgers van eerste klasse, met het erven van de filosofie om problemen op te splitsen in kleinere, beheersbare en geïsoleerde stukken. Historisch gezien heeft deze functionele aanpak wortels in de lambda-calculus en Lisps, die de filosofie van code als data bevorderen.

Alternatieven voor het organiseren van code kunnen het gebruik van macro’s of processen in Elixir zijn voor respectievelijk repetitieve of gelijktijdige taken. Wat betreft de implementatie, Elixir-functies kunnen patroonmatching hanteren en verschillende argumenten ontvangen (arity), wat ze veelzijdig maakt.

Zie Ook