【发布时间】:2018-10-13 08:38:16
【问题描述】:
我发现需要一个带有签名 'a -> 'b -> ('a -> 'b -> 'c) -> 'c 的函数,用于在管道时应用两个参数:
let apply2 x y f =
f x y
我需要这个,因为我正在使用一个函数
myFun : MyType -> TypeA -> TypeB -> ResultType
我在另一个函数中使用它:
let useCase someValue (valueA: TypeA) (valueB: TypeB) =
someValue
|> ...
|> toMyType
|> myFun
|> apply2 valueA valueB
apply2 符合要求,但我无法摆脱我可以使用内置函数或运算符的感觉,或者我错过了一些更基本的方法(除非 lambdas,恕我直言,在这个案例)。注意,我不能轻易切换myFun的参数顺序(这是一只长颈鹿HttpHandler,所以最后两个参数必须是HttpFunc和HttpContext,由上面的TypeA和TypeB指定) .
带有我所描述的签名的apply2 函数在函数式编程中使用是公平的,还是我遗漏了一些明显的东西?如果这是一个众所周知的概念,它有更好的名字吗?
【问题讨论】:
标签: f# functional-programming pipeline partial-application pipelining