如何将一个函数传递给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


以上是如何将一个函数传递给elixir中同一模块中的另一个函数?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>