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