如何将一个函数传递给 elixir 中同一模块中的另一个函数?

How to pass a function into another function in the same module in elixir?

在python中,我们可以像下面的示例代码一样将一个函数传递给另一个函数。

def digits(n):
    return list(map(int, str(n)))

def digit_cube(n):
    return list(map(lambda x: x ** 3, digits(n)))

Elixir 也可以这样做吗?如果是,如何?

可以传递匿名函数

f = fn e -> e * 2 end
Enum.map([1, 2, 3], f)

或使用 &/1

捕获现有函数
defmodule M do
  def dbl(e), do: e * 2
  def map_dbl(list) do
    Enum.map(list, &dbl/1)
  end
end