Jon*_*ono 3 f# functional-programming
在F#中,有没有办法将运算符视为函数?在上下文中,我想部分应用运算符(包括中缀和前缀),但编译器似乎很乐意部分应用函数.
示例:List.map (2 **) [0..7];;我没有能够编写,而是必须定义自己的函数pow x y(然后是另一个函数,let swap f x y = f y x;;因为编译器不会让我部分应用|>,如同List.map (|> pow 2) [0..7];;.)最后,我的代码需要List.map (swap pow 2) [0..7];;工作.
我会这样做:
[0..7] |> List.map (fun n -> pown n 2)
Run Code Online (Sandbox Code Playgroud)
或者,如果2是基数:
[0..7] |> List.map (pown 2)
Run Code Online (Sandbox Code Playgroud)
这也有效:
[0.0..7.0] |> List.map (( ** ) 2.0)
Run Code Online (Sandbox Code Playgroud)