gpt4 book ai didi

scala - 迭代过程的流与尾递归

转载 作者:行者123 更新时间:2023-12-04 06:03:54 24 4
gpt4 key购买 nike

这是my previous question的后续.

我知道我们可以使用 streams生成“pi”(和其他数字)、第 n 个斐波那契等的近似值。但是我怀疑是否 streams是正确的做法。

主要缺点(如我所见)是内存消耗:例如stream将保留 i < n 的所有斐波那契数,而我只需要第 n 个斐波那契数。当然,我可以用drop但它使解决方案更加复杂。 tail recursion看起来像这样的任务更合适的方法。

你怎么认为?

最佳答案

如果需要走得快,轻装上阵。这意味着;避免分配任何不必要的内存。如果您需要内存,请使用可用的 fastast 集合。如果您知道需要多少内存;预分配。分配是绝对的性能杀手......用于计算。您的代码可能不再好看,但它会运行得很快。

但是,如果您正在处理 IO(磁盘、网络)或任何用户交互,那么分配就显得苍白无力。然后最好将优先级从代码性能转移到可维护性。

关于scala - 迭代过程的流与尾递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8602741/

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