将 F# 管道运算符( <

编程入门 行业动态 更新时间:2024-10-27 18:23:09
本文介绍了将 F# 管道运算符( <|、>>、<<)转换为 OCaml的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

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

I'm converting some F# code to OCaml and I see a lot of uses of this pipeline operator <|, for example:

let printPeg expr = printfn "%s" <| pegToString expr

<| 运算符显然定义为:

# let ( <| ) a b = a b ;; val ( <| ) : ('a -> 'b) -> 'a -> 'b = <fun>

我想知道为什么他们费心在 F# 中定义和使用这个运算符,是不是为了避免像这样输入括号?:

I'm wondering why they bother to define and use this operator in F#, is it just so they can avoid putting in parens like this?:

let printPeg expr = Printf.printf "%s" ( pegToString expr )

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

As far as I can tell, that would be the conversion of the F# code above to OCaml, correct?

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

Also, how would I implement F#'s << and >> operators in Ocaml?

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

( the |> operator seems to simply be: let ( |> ) a b = b a ;; )

推荐答案

直接来自 F# 源代码:

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# 管道运算符( &lt;

本文发布于:2023-11-26 22:47:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1635517.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:管道   运算符   lt   amp

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!