Task

Pass a function     as an argument     to another function.



Related task

   First-class functions


iex(1)> defmodule RC do
...(1)>   def first(f), do: f.()
...(1)>   def second, do: :hello
...(1)> end
{:module, RC,
 <<70, 79, 82, 49, 0, 0, 4, 224, 66, 69, 65, 77, 69, 120, 68, 99, 0, 0, 0, 142,
131, 104, 2, 100, 0, 14, 101, 108, 105, 120, 105, 114, 95, 100, 111, 99, 115, 95
, 118, 49, 108, 0, 0, 0, 2, 104, 2, ...>>,
 {:second, 0}}
iex(2)> RC.first(fn -> RC.second end)
:hello
iex(3)> RC.first(&RC.second/0)			# Another expression
:hello
iex(4)> f = fn -> :world end                    # Anonymous function
#Function<20.54118792/0 in :erl_eval.expr/5>
iex(5)> RC.first(f)
:world