gpt4 book ai didi

functional-programming - 有状态编程的优点?

转载 作者:行者123 更新时间:2023-12-04 07:42:57 25 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




9年前关闭。




我想知道无状态编程的好处,发现有人分享了我的问题:
Advantages of stateless programming?

不过,当我通读答案时,这让我对相反的问题感到好奇。有状态编程的优点是什么?最近似乎有很多关注无状态代码,但我对趋势持谨慎态度。

似乎有状态(即命令式)编程可能比无状态(即函数式)编程更适合某些场景,我希望能够更好地识别有状态编程可以解决哪些问题。

最佳答案

与不可变的无状态编程模型相比,基于可变共享状态的编程模型在少数情况下具有无可争议的优势。可变性可以带来巨大优势的一个领域是允许算法就地工作。 haskell wiki 有一个关于实现快速排序的很好的例子:http://www.haskell.org/haskellwiki/Introduction#When_C_is_better

总结一下,当您不允许修改列表内存时,您需要创建它的排序副本。几乎任何其他修改某些数据结构的算法也是如此,例如AVL 树。

一般来说,函数式编程语言比它们的命令式语言更需要内存。现在内存很便宜,但带宽至关重要,而且内存速度的增加与我们看到的 CPU 功率的增加并不成正比。然而,必须注意的是,Haskell 的执行模型允许编译器执行一些漂亮的优化,包括内存使用和访问模式。这在一定程度上可以弥补理论上的不足。

关于functional-programming - 有状态编程的优点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7871842/

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