15 lines
396 B
Elixir
15 lines
396 B
Elixir
defmodule First_class_functions do
|
|
def task(val) do
|
|
as = [&:math.sin/1, &:math.cos/1, fn x -> x * x * x end]
|
|
bs = [&:math.asin/1, &:math.acos/1, fn x -> :math.pow(x, 1/3) end]
|
|
Enum.zip(as, bs)
|
|
|> Enum.each(fn {a,b} -> IO.puts compose([a,b], val) end)
|
|
end
|
|
|
|
defp compose(funs, x) do
|
|
Enum.reduce(funs, x, fn f,acc -> f.(acc) end)
|
|
end
|
|
end
|
|
|
|
First_class_functions.task(0.5)
|