这条java线的解释是什么?

时间:2013-12-06 22:57:10

标签: java

我是Java的新手。有人可以向我解释这一行吗?

Math.sqrt(6 * (1 until 10000).map(x => (1 / Math.pow(x.toDouble, 2))).sum) 

4 个答案:

答案 0 :(得分:4)

它被称为语法错误

您的代码不是Java,或者您没有正确理解您的作业。

答案 1 :(得分:1)

代码是Scala,而不是Java。


在任何情况下,表达式都可以分解为..

val fn = (x: Int) => 1 / Math.pow(x.toDouble, 2)
val inner = (1 until 10000).map(fn).sum 

..其内容如下:

  

对于[1, 10000)范围内的所有整数,通过函数f(x) -> 1/pow(x,2)对它们进行转换并对结果求和。

然后无论结果如何,都将其用作最终sqrt的输入。

Math.sqrt(6 * inner) 

答案 2 :(得分:0)

这不是Java。

它看起来更像是Scala。

我认为在Java中它看起来像这样:

double y=0d;
for(int x=1;x< 10000; x++){
    y+=(1 / Math.pow(x,2);
}
y = 6*y;
Math.sqrt(y);

答案 3 :(得分:0)

在Java 8中,这将是:

Math.sqrt(6 * IntStream.rangeClosed(1, 10000)
                       .mapToDouble(x -> (1.0 / Math.pow((double)x, 2.0)))
                       .sum())