gpt4 book ai didi

f# - 将 F# 管道运算符(<|、>>、<<)转换为 OCaml

转载 作者:行者123 更新时间:2023-12-04 04:43:56 25 4
gpt4 key购买 nike

我正在将一些 F# 代码转换为 OCaml,我看到了这个管道运算符 <| 的很多用途, 例如:

let printPeg expr =
printfn "%s" <| pegToString expr
<|运算符显然定义为:
# let ( <| ) a b = a b ;;
val ( <| ) : ('a -> 'b) -> 'a -> 'b = <fun>

我想知道为什么他们费心在 F# 中定义和使用这个运算符,是不是为了避免像这样输入括号?:
let printPeg expr =
Printf.printf "%s" ( pegToString expr )

据我所知,这就是将上面的 F# 代码转换为 OCaml,对吗?

另外,我将如何实现 F# 的 <<>> Ocaml 中的运算符?

( |> 运算符似乎只是: let ( |> ) a b = b a ;; )

最佳答案

直接来自F# source :

let inline (|>) x f = f x
let inline (||>) (x1,x2) f = f x1 x2
let inline (|||>) (x1,x2,x3) f = f x1 x2 x3
let inline (<|) f x = f x
let inline (<||) f (x1,x2) = f x1 x2
let inline (<|||) f (x1,x2,x3) = f x1 x2 x3
let inline (>>) f g x = g(f x)
let inline (<<) f g x = f(g x)

关于f# - 将 F# 管道运算符(<|、>>、<<)转换为 OCaml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14410953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com