我正在尝试使用伪C#代码在F#中执行以下操作:
Data? MyFunc(a, b, c) { ... }
var result = new List<Data>();
foreach (var i in MyData)
{
var r = MyFunc(something, somethingelse, i);
if (r != null) result.add((Data)r);
}
我有2个问题:
(从F#开始,答案可能很简单)
答案 0 :(得分:4)
您可以使用List.choose
:
let myData a b c = ...
let collect somthing somethingElse myData =
myData |> List.choose (myFunc something somethingElse)
如果list元素不是myFunc
的最后一个元素,则不能使用部分应用程序,而可以使用函数,例如
myData |> List.choose (fun e -> myFunc something e somethingElse)