【发布时间】:2015-05-01 15:56:23
【问题描述】:
您好,我正在研究 scala 上的一些示例。有一种称为 product 的方法,它将给定函数在给定数字范围内的所有结果相乘。
例如。 product(somefunction: Int => Int) (lowerborder: Int, upperborder: Int)
以下将给定范围内的所有阶乘结果相乘:
def product(f: Int => Int)(a: Int, b: Int): Int = {
if (a > b) 1
else f(a) * product(f)(a + 1, b)
}
def fact(x: Int, y: Int) = product(sFact)(x, y)
def sFact(c: Int): Int = if (c == 0) 1 else c * sFact(c - 1)
fact(3, 7)
fact(3, 7) 的结果是(- 错误!):
//> res0: Int = -1718845440
谁能告诉我为什么?
【问题讨论】:
标签: scala