在 Haskell 中,我们有一个flip
函数:flip f x y = f y x
,它本质上接受一个函数并返回相同的函数,只是交换了两个参数。我想知道 OCaml 中是否有对应的,因为我找不到并且不想每次都重写它。
干杯,
在 Haskell 中,我们有一个flip
函数:flip f x y = f y x
,它本质上接受一个函数并返回相同的函数,只是交换了两个参数。我想知道 OCaml 中是否有对应的,因为我找不到并且不想每次都重写它。
干杯,
标准 OCaml 库中没有定义许多像这样用于通用 FP 管道的函数。我一直很想念他们。
然而,现在有很好的 OCaml 库可以提供大部分或所有这些缺失的功能。OCaml Batteries Included项目flip
在BatPervasives
模块中定义。Jane Street Core项目flip
在Fn
模块中定义。
带标签的论点在一定程度上减轻了痛苦:
# let f ~x ~y = x - y;;
val f : x:int -> y:int -> int = <fun>
# f ~y:5;;
- : x:int -> int = <fun>
# f ~x:6;;
- : y:int -> int = <fun>
因此,如果您愿意写下标签(有些人认为这会使代码更具可读性),那么您可能能够获得您想要的行为。这当然取决于情况。
现在包含Fun.flip
在标准库中。