gpt4 book ai didi

functional-programming - 如何编写不更改状态的应用程序(使用功能语言)?

转载 作者:行者123 更新时间:2023-12-04 08:40:24 25 4
gpt4 key购买 nike

我想一天学习函数式编程,但是我不明白如何将其用于除简单数学之外的其他用途。

例如:一个简单的Web浏览器添加书签功能需要引起某种形式的更改,以便下次用户单击书签时,列表中将出现新的书签。

最佳答案

整体上,一个有用的应用程序通常必须更改某些状态,但这并不意味着所有或您的函数都需要更改状态才有用。

函数式编程中的Monads用于表达输入/输出(I/O)操作和状态变化,而无需使用会带来副作用的语言功能。

我认为您只是在考虑面向对象。仅仅因为函数总是在给定相同输入的情况下提供相同的输出,并不意味着它不能接受不同类型的输入(可能输入的可能性无限)并不能产生不同类型的输出。

通过函数式编程,您将处理不可变的对象,而不是可变的对象。如果获得对象的输入,则可以创建一个新的修改后的对象并返回该对象。

看看这个article about MapReduce by Joel on software。它包含一个很好的例子,说明为什么不更改状态的功能可以完全有用。

关于functional-programming - 如何编写不更改状态的应用程序(使用功能语言)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/477374/

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