组合柯里化函数

Composing curried functions

我处于以下情况。我想要一个只能在给定上下文中 运行 的函数。同时,我希望能够使用 andThen 语法组合这些函数(在这种情况下看起来会好得多)。

这里是工作表的一个小例子。我希望能够以第二种方式做到这一点。

implicit val iInt: Int = 2

def a(a: String)(implicit ctx: Int): String = a
def b(b: String)(implicit ctx: Int): String = b

val works = b(a("foo"))
val fails = a("foo") andThen b

一般的问题可能是。如何编写柯里化函数?但如果有人能满足第一段描述的要求,我也会感兴趣。

这一行可以根据您对 a 和 b 的定义使用:

val worksToo = (a _ andThen b) ("foo") 

a 和 b 转换为函数(因为没有),然后链接起来。