在Haskell中,我们有一个flip函数:flip f x y = f y x它本质上接受一个函数并返回相同的函数,除了交换两个参数.我想知道OCaml中是否有对应物,因为我找不到它并且不想每次都重写它.
干杯,
带有标签的参数在一定程度上减轻了痛苦:
# 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>
Run Code Online (Sandbox Code Playgroud)
因此,如果您愿意写下标签(有些人认为这使代码更具可读性),那么您也许能够获得您想要的行为。当然这要看情况。