我必须生成一些随机数并将它们相加。像
这样的东西result = generateList(range(0, max), generatorFunctionReturningInt()).foreach(sum _)
如果generateList
生成尺寸=最大的List
和generatorFunctionReturningInt
生成的值
或者可能像
result = range(0, max).map(generatorFunctionReturningInt).foreach(sum _)
答案 0 :(得分:15)
这个怎么样?
Stream.continually(generatorFunctionReturningInt()).take(max).sum
答案 1 :(得分:11)
各种集合类型的伴随对象都有一些方便的工厂方法。尝试:
Seq.fill(max)(generate)
答案 2 :(得分:4)
简单地
(0 to max).map(_ => (new util.Random).nextInt(max)).sum
其中max
定义了数字和随机范围。
foreach
方法用于副作用函数(如println),它不返回任何内容(Unit
)。
答案 3 :(得分:0)
foreach不是用于返回结果,而是使用map:
val result = Range (0, max).map (generatorFunctionReturningInt).map (sum _)
具体来说,sum已经预定义了,不是吗?
val result = Range (0, max).map (generatorFunctionReturningInt).sum
工作代码(我们都喜欢工作代码)
val result = Range (0, 15).map (3 + _).sum
result: Int = 150
对于这个简单的案例,它与Range (3, 18).sum
相同。