gpt4 book ai didi

scala - Scala 中的无限流

转载 作者:行者123 更新时间:2023-12-03 06:41:56 25 4
gpt4 key购买 nike

假设我有一个函数,例如旧的最爱

def factorial(n:Int) = (BigInt(1) /: (1 to n)) (_*_)

现在我想找到 nfactorial(n) 适合 Long 的最大值。我可以做

(1 to 100) takeWhile (factorial(_) <= Long.MaxValue) last

这可行,但是 100 是一个任意大的数字;我真正想要的左侧是一个无限流,它不断生成更高的数字,直到满足 takeWhile 条件。

我想出了

val s = Stream.continually(1).zipWithIndex.map(p => p._1 + p._2)

但是有更好的方法吗?

(我也知道我可以递归地获得解决方案,但这不是我正在寻找的。)

最佳答案

Stream.from(1)

创建一个从 1 开始并以 1 递增的流。这一切都在 API docs 中。 .

关于scala - Scala 中的无限流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6408186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com