是否有 F# 运算符来表达此功能?
Is there an F# operator to express this function?
我有以下代码:
let funcsAppliedToData data = funcs |> Seq.map (fun f -> f data)
是否有运算符来表达括号中定义的函数(或者更简洁的整行书写方式,就此而言)?
您可以使用 |>
运算符的部分函数应用程序重写它。您拥有的功能:
(fun f -> f data)
也可以用管道符写成:
(fun f -> data |> f)
您可以将运算符视为一个函数:
(fun f -> (|>) data f)
现在您可以使用偏函数应用程序了:
((|>) data)
这回答了您的问题,但我认为我不会在实践中使用它。显式编写函数可能会长几个字符,但我发现它更具可读性。管道运算符通常不会以上述方式使用,因此阅读代码的任何人基本上都必须逆向我在此处描述的过程才能理解发生了什么。
我有以下代码:
let funcsAppliedToData data = funcs |> Seq.map (fun f -> f data)
是否有运算符来表达括号中定义的函数(或者更简洁的整行书写方式,就此而言)?
您可以使用 |>
运算符的部分函数应用程序重写它。您拥有的功能:
(fun f -> f data)
也可以用管道符写成:
(fun f -> data |> f)
您可以将运算符视为一个函数:
(fun f -> (|>) data f)
现在您可以使用偏函数应用程序了:
((|>) data)
这回答了您的问题,但我认为我不会在实践中使用它。显式编写函数可能会长几个字符,但我发现它更具可读性。管道运算符通常不会以上述方式使用,因此阅读代码的任何人基本上都必须逆向我在此处描述的过程才能理解发生了什么。