我想部分应用功能。 Elixir中是否有标准的简洁方法来进行任何种类的计算?

我知道我可以做这样的事情:

new_func = fn(arg2, arg3) -> my_func(constant, arg2, arg3) end

new_func2 = fn -> my_func2(constant) end

但是看起来很丑。

最佳答案

您可以使用capture &运算符对其进行一些清理:

plus2 = &Kernel.+(2, &1)
plus2.(4)
6

注意plus2和它的括号之间的点.
因为这是一种语法糖
plus2 = fn(right) -> Kernel.+(2, right) end

所有相同的规则都适用。就像您必须将所有参数提供给您正在“使用”的函数一样,并且可以按任何顺序放置位置参数。

Docs on the & operator

10-08 13:05