为什么F#中的数据参数最后会出现,如下面的代码片段所示:
let startsWith lookFor (s:string) = s.StartsWith(lookFor)
let str1 =
"hello"
|> startsWith "h"
答案 0 :(得分:1)
我认为你的部分答案在你的问题中。 |>
(正向管道)运算符允许您在调用函数之前指定函数的最后一个参数。如果参数顺序相反,则不会起作用。这种功能的最好例子是链接在列表上运行的函数。每个函数都以列表作为最后一个参数,并返回一个可以传递给下一个函数的列表。
来自http://www.tryfsharp.org/Learn/getting-started#chaining-functions:
[0..100] |> List.filter (fun x -> x % 2 = 0) |> List.map (fun x -> x * 2) |> List.sum
|>
运算符允许您通过指定最后一个来重新排序代码 调用之前函数的参数。这个例子是 在功能上等同于以前的代码,但它读取更多 干净。首先,它创建一个数字列表。然后,它管道列表 过滤掉赔率的数字。接下来,它导致管道List.map
加倍。最后,它管道加倍数List.sum
将它们添加到一起。 Forward Pipe Operator重组 函数链,以便您的代码读取您的思考方式 问题而不是强迫你从里到外思考。
正如评论中所提到的,还有currying的概念,但我并不认为这与链接函数一样容易掌握。