好吧,所以我试着在网上找到的幻灯片中做这个例子。但我有点失落。继续扫描问题
抱歉,它不会让我使用图片链接,所以我从我的photobucket链接到问题。现在我认为这可能就像跟踪在线发现并插入Rationals中的整数示例一样简单
def sum (f: Rational => Rational)( b: Rational): Rational = {
if (b > new Rational(0,1))
new Rational(0,1)
else
f(b) + sum(f)(b + new Rational(1, 1))
}
并得到了,但它显然是错误的,并没有做问题的问题。所以现在我对如何解决这个问题感到困惑
答案 0 :(得分:0)
你不需要递归,你可以用for迭代。类似的东西:
val db = b.den
val partials = for {
dk <- 2 to db
nk <- 1 until dk
} yield f(Rational(nk, dk)
partials.sum