如果Array.append没有部分应用的可变参数,则可以删除lambda

dem*_*mas 7 arrays lambda f#

我有数组字符串.我需要压扁它们并使用:

Array.fold (fun acc el -> Array.append acc el) [||] arr2d
Run Code Online (Sandbox Code Playgroud)

林特告诉我:

"如果Array.append没有部分应用的可变参数,则可以删除lambda"

这是什么意思?我怎样才能删除lambda?

Bar*_*cki 11

该形式的任何lambda函数(fun x -> f x)都可以表示为f.持有不变的条件.

在您的代码中,您拥有fun acc el -> Array.append acc el相同类型并且相同的代码Array.append,因此您可以将其缩短为:

Array.fold Array.append [||] arr2d
Run Code Online (Sandbox Code Playgroud)