F# 具有任意参数数的高阶函数接受函数

F# 具有任意参数数的高阶函数接受函数,f#,functional-programming,higher-order-functions,F#,Functional Programming,Higher Order Functions,在F中有没有一种方法可以编写一个高阶函数,能够接受具有任意数量参数的curried函数?例如,如何编写一个同时使用f:x:int->int和g:x:int->y:int->int的提升函数 我敢肯定,如果没有棘手的额外操作员,这是不可能做到的。给你留下像电梯之类的东西,你能再详细说明一下吗?在您的示例中,有三个值a、b和c进入表达式,但我只想传递f和s。另外,任何关于操作符定义的指针都会很感激。我不知道这种情况下的答案,但这类问题通常可以用这种方式来回答。最简单的方法可能是使其以与::类似但不同

在F中有没有一种方法可以编写一个高阶函数,能够接受具有任意数量参数的curried函数?例如,如何编写一个同时使用f:x:int->int和g:x:int->y:int->int的提升函数


我敢肯定,如果没有棘手的额外操作员,这是不可能做到的。给你留下像电梯之类的东西,你能再详细说明一下吗?在您的示例中,有三个值a、b和c进入表达式,但我只想传递f和s。另外,任何关于操作符定义的指针都会很感激。我不知道这种情况下的答案,但这类问题通常可以用这种方式来回答。最简单的方法可能是使其以与::类似但不同的方式运行,并以这种方式创建列表。一个更好的例子应该是提升sfxyz的东西。我刚才错过了其他参数谢谢你,约翰。看起来我必须对函数进行反求,使其成为原始参数的异构列表中的单参数函数。
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