在F#中是否有办法编写一个能够接受任意数量参数的curried函数的高阶函数?例如,如何编写使用lift
和f : x:int -> int
的单个g : x:int -> y:int -> int
函数?
let f x = x + 1
let g x y = x + y
let lift1 s f x = (f x, s)
let lift2 s f x y = (f x y, s)
let fLifted = lift1 "Func f" f
let gLifted = lift2 "Func g" g