OCaml中Haskell的$运算符的等效项

yws3nbqq  于 2022-11-14  发布在  其他
关注(0)|答案(3)|浏览(222)

在OCaml中有没有Haskell的$运算符的等价物,或者我必须依赖于括号?

multiplyByFive 5 + 1 = 26

但是,

multiplyByFive $ 5 + 1 = 30
soat7uwm

soat7uwm1#

标准库定义了从右到左的应用程序运算符@@

let compose h g f x = h @@ g @@ f x

以及从左到右应用运算符|>

let rev_compose f g h x = x |> f |> g |> h

具有预期的关联性(@@为右,|>为左)。

hzbexzde

hzbexzde2#

您正在寻找@@

# let multiplyby5 a = 5 * a;;
val multiplyby5 : int -> int = <fun>
# multiplyby5 5 + 1;;
- : int = 26
# multiplyby5 @@ 5 + 1;;
- : int = 30
6l7fqoea

6l7fqoea3#

在OCaml中,你可以使用应用程序操作符(在OCaml 4.01中添加的)来实现同样的操作。

multiplyByFive @@ 5 + 1
- : int = 30

应用程序运算符具有右优先级,因此首先计算运算符的右侧,类似于Haskell的应用程序运算符($)。|〉),这是一个类似于Haskell中的(&)操作符的反向应用操作符。

相关问题