在F#中,如果我使用一个需要两个参数的函数,例如mod (%):
13 % 10
// val it : int = 3
这与
相同。(%) 13 10
// val it : int = 3
有没有办法使用管道符号编写它,将13进行柯里化?
显然,“两个参数的函数”实际上是一个返回中间函数的一参数函数。因此,可以使用管道。
10 |> (%) 13
// val it : int = 3
然而,我需要相反的方式,即将第一个参数13传递,第二个参数10部分应用,但不是第一个参数。
是否有任何语言可以帮助实现这一点,而无需每次创建额外的lambda,即避免以下情况?
13 |> (fun x -> x % 10)
(%) 10 13 = 10
。因此,参数的顺序在前缀和中缀形式之间不会改变。 - sebhofer