【发布时间】:2023-03-22 06:20:02
【问题描述】:
我们知道pure functions:
- 对于给定的输入总是返回相同的结果
- 不产生副作用
这将我们引向referential transparency - 一个表达式可以用一个值替换而不改变程序的行为。
这告诉我们,如果一个程序排除了程序运行环境中实体的破坏性修改(更新),则该程序可以被称为purely functional。
当我们查看Software Transactional Memory 时,我们看到一种类似于数据库事务的并发控制机制,用于控制并发计算中对共享内存的访问。但这本身并没有什么特别的功能。
我的问题是:我们可以考虑 Clojure 的 STM '功能'吗?
【问题讨论】:
标签: clojure functional-programming stm purely-functional referential-transparency