scala - Curried Scala 函数中的参数顺序

标签 scala currying

在 Scala 中,我可以像这样生成一个柯里化(Currying)函数:

def multiply(m: Int)(n: Int): Int = (m + 1) * (n + 2)

如果我愿意,我可以通过填充第一个参数来生成一个新函数,如下所示:

val timesTwo = multiply(1) _

但是替换第二个参数而不是第一个参数的语法是什么?

val timesThree = multiply _ (1)  // Incorrect Syntax

更重要的是,为什么没有直接平行于multiply(1) _

最佳答案

val timesThree = multiply(_: Int)(1)

val timesThree = (x: Int) => multiply(x)(1)

关于scala - Curried Scala 函数中的参数顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18524374/

相关文章:

Haskell:了解部分应用程序吗?

c# - 为什么 C# 编译器不能从函数签名中推断泛型委托(delegate)?

scala - 在 Scala 中,所有抽象类型在删除后都具有相同的类型

scala - 在 specs2 框架中,为什么使用 Scope 会阻止执行 forAll 量词?

scala - 在 Play 2.1 (scala) 中设置自定义响应头

scala - 将多个异常类型匹配到同一案例

scala spark UDF 过滤器数组结构

c# - 需要帮助理解 lambda(柯里化(Currying))

haskell - 为什么我可以在我的模式匹配中对其中一种模式进行 curry 而不是另一种?

javascript - 仅将第二个参数绑定(bind)到 javascript 函数