我对 Scala 很陌生,但我相信我已经编写了一个完全合法的 Scala 程序:
这是在 Scala 工作表上:
def product(f: Int => Int)(a: Int, b: Int): Int =
if (a > b) 1 // Not a 0 because the unit value of product is a 1
else f(a) * product(f)(a + 1, b)
product(x => x * x)(3, 7)
但是,我收到以下错误:
> <console>:8: error: type mismatch;
found : Unit
required: Int
if (a > b) 1 // Not a 0 because the unit value of product is a 1 else f
(a) * product(f)(a + 1, b)
^
> <console>:8: error: not found: value product
product(x => x * x)(3, 7)
^
这是一个简单的乘积,将所有数字的平方a
相乘b
。
它说我的函数调用有一些东西,但是,这应该是完全合法的,因为我正在传递一个确实返回一个Int
. 任何有关此问题以及如何处理type mismatch
错误的帮助将不胜感激。
使用 Scala 2.10.2
。