gpt4 book ai didi

functional-programming - 函数编程和模拟对象

转载 作者:行者123 更新时间:2023-12-03 23:29:03 26 4
gpt4 key购买 nike

我最近正在观看 Clojure 上的网络广播。在其中,演示者在讨论 Clojure 的 FP 性质时发表了评论,其内容类似于(我希望我没有歪曲他)“模拟对象正在 mock 你”。

不久前,当我在 Microsoft 的 Reactive Framework 开始出现时观看网络广播时,我也听到了类似的评论。它类似于“模拟对象适用于那些不懂数学的人”)

现在我知道这两条评论都是笑话/诙谐等等(并且可能被错误地解释了),但它们的背后显然是一些概念性的东西,我不明白,因为我还没有真正转向 FP 范式。

因此,如果有人能解释 FP 是否确实使模拟变得多余,如果是这样,我将不胜感激。

最佳答案

在纯 FP 中,您有引用透明的函数,每次使用相同的输入调用它们时,这些函数都会计算相同的输出。因此,您需要的所有状态都必须作为参数显式传入并作为函数结果传出,没有状态对象以某种方式“隐藏在”您调用的函数后面。然而,这就是你的模拟对象通常所做的:模拟你的被测对象所依赖的一些外部的、隐藏的状态或行为。

换句话说:
OO:你的对象结合了相关的状态和行为。
纯 FP:状态是你在函数之间传递的东西,这些函数本身是无状态的,只依赖于其他无状态函数。

关于functional-programming - 函数编程和模拟对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3564938/

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