Function as first-class citizen
Function as an argument
Enum.map([1, 2, 3], fn x -> x ** 3 end)Function as a return value
defmodule Power do
  def of_three(list) do
    Enum.map(list, pow(3))
  end
  def of_two(list) do
    Enum.map(list, pow(2))
  end
  def pow(n) do
    fn x -> x ** n end
  end
endPower.of_three([1, 2, 3])Power.of_two([2, 4, 78])Assign a function to a variable
power_of_four = Power.pow(4)power_of_fourpower_of_four.(3)defmodule X do
  def f(y) do
    y * 3
  end
end