不能得到这个理性的总和(Scala)

时间:2014-10-27 06:39:00

标签: scala

好吧,所以我试着在网上找到的幻灯片中做这个例子。但我有点失落。继续扫描问题

a link

抱歉,它不会让我使用图片链接,所以我从我的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))  


}  

并得到了,但它显然是错误的,并没有做问题的问题。所以现在我对如何解决这个问题感到困惑

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