我想部分应用功能。 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