F# 当调用的函数有多个参数时,如何使用list.filter,以F为单位?

F# 当调用的函数有多个参数时,如何使用list.filter,以F为单位?,f#,F#,我正试图从伪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); } 我有两个问题: 是否有一个等效的List.filter允许检查函数调用的结果

我正试图从伪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);
}
我有两个问题:

是否有一个等效的List.filter允许检查函数调用的结果是否为None? 如果某些参数不是来自列表迭代器,如何通过列表调用函数?比如我的例子中的一些东西? 从F开始,答案可能很简单,您可以使用:

如果list元素不是myFunc的最后一个元素,则不能使用部分应用程序,但可以使用函数,例如

myData |> List.choose (fun e -> myFunc something e somethingElse)

看起来我有一百万个列表函数需要学习:两个简单的问题:1列表元素必须是myFunc的最后一个参数,对吗?如果myFunc返回类似float,int的值,那么正确的语法是什么?这给了我:[FS0001]类型a选项“与类型”Nullable*Nullable”不匹配@Thomas-是要使用部分应用程序,您需要列表元素作为最后一个参数,请参阅更新。MyData的返回类型是什么?你的问题表明这是一个选项“a”,但你的评论表明它是浮动的,整数?。您想生成一个列表浮点值int吗?@Thomas-您能将myData更改为直接返回浮点值int选项吗?或者它是一个不能更改的外部函数?它是一个C函数,所以我可以使它浮动?int?但那是it@Thomas-关于使用F学习的百万列表函数,请立即添加书签。你会一次又一次地回来。最终,您将记住所有这些函数,但在此之前,该页面是迄今为止我所找到的对它们最好的参考。
myData |> List.choose (fun e -> myFunc something e somethingElse)