【发布时间】:2021-06-15 20:25:58
【问题描述】:
我从我的 f# 课程开始就试图理解 lambda 函数,但有时仍难以阅读和使用它们。
let wordCount = "aaa aaa".Split [| ' ' |]
wordCount.Length // 2
let letterCount = wordCount |> Array.sumBy (fun w -> w.Length)
我如何理解上面的几行:前两个很简单,第三个是我不明白的。由于wordCount 是一个字符串数组[|"aaa"; "aaa"|],Array.sumBy (fun w -> w.Length) 如何知道一个数组作为参数传递而(fun w -> w.Length) 才能正常工作。 sumBy 是否只对数组的每个元素执行 anon 函数?这在 .map 和其他此类方法上是否相同?
还有一个小问题,顺便说一句>>和|>?
【问题讨论】:
-
这个东西可以工作,因为 F# 支持柯里化。您可以在FSharpForFunAndProfit 上阅读有关它的信息。我发现这个网站是新手学习 F# 知识的绝佳来源
标签: lambda f# anonymous-function pipelining