我可能没有这个问题的正确词汇,但我希望了解函数式编程的基本概念。谢谢你的阅读!
如果您编写的是与多个消费者交互的纯功能程序,那么如何为共享信息建模?使用银行帐户的示例...
使用可变变量,您可以执行以下操作:
class BankAccount {
private var bal: Int = 0
def balance: Int = bal
def deposit(amount: Int) {
bal += amount
}
def withdraw(amount: Int) {
bal += amount
}
}
因此,如果在t0时余额为0美元而鲍勃在t1处存入5,则玛丽在t2检查余额,她看到5,那就是她看到鲍勃行动的影响。
如何使用函数式编程实现这一点,其中变量应该是不可变的?我可以理解,对于单个消费者,Bob,您可以返回BankAccount的 new 实例,余额为5.但是对于第二个消费者,Mary,如何她会访问这个新的BankAccount 吗?
从概念上讲,人们可以将平衡视为一种随时间变化的状态,而是存在一个不可变的balance_t0 = 0和一个不可变的balance_t1 = 5.但要做到这一点,你仍然需要一些方法来使用编程语言命名每个时间点的余额......