Erlang 函数可以共享相同的名称但具有不同的数量。例如:
name(X) -> X.
name(X,Y) -> X * Y.
我希望能够从行为相同的函数中返回乐趣。
在这个例子中,我想要一种方法来返回 fun/1 和 fun/2 作为一个返回,所以返回的 fun 可以以任何一种方式调用,就像上面的函数示例一样。
function() ->
fun(X) -> X end,
fun(X,Y) -> X * Y end.
我可以返回一个元组 {F1, F2} 但这很难用。
我可以返回一个以列表作为参数的 fun,但是对于像 F([X]) 或 F([X, Y]) 这样的调用,这也很丑陋。