给定方法

def f(a: String, b: String) = ???

我想同时获得部分应用的功能(带有第一个参数和第二个参数)。

我写了以下代码:
def fst = f _ curried "a"
def snd = (s: String) => (f _ curried)(s)("b")

有没有更好的办法 ?

[更新] snd可以写成更短的def snd = (f _ curried)((_: String))("b")

最佳答案

这比较简单:

def fst = f("a", (_: String))
def snd = f((_: String), "b")

但是请注意,它会在每次调用时重新计算部分应用的函数,因此在大多数情况下,我宁愿使用val(或者也许是lazy val)而不是def

10-08 13:12
查看更多