函数式编程和马尔可夫链有某种关联吗?

Are Functional Programming & Markov Chains related somehow?

David Silver 将马尔可夫链的 属性 描述为:

The future is independent of the past given the present

https://www.youtube.com/watch?v=lfHX2hHRMVQ(视频 4 分钟)

这引起了我的共鸣,因为我目前正在学习函数式编程 (FP)。

在 FP 中,您也可以忽略过去,因为您的函数只需要当前状态即可执行某些操作并输出新状态。对于面向对象,这不一定是正确的,因为您的输出可能取决于不同地方的多个状态。

FP 和马尔可夫链之间是否存在我不知道的更深层次的联系?

例如,用 FP 编写的函数是确定性马尔可夫链是否准确?

马尔可夫链和函数式编程之间确实存在联系。马尔可夫链是一种非确定性 Finite-State Machine (FSM),而链接 函数会产生确定性 FSM。这里需要注意的是,在现实世界(例如 Web 应用程序)中,您通常还需要非纯函数(例如,修改或查询外部数据库)。

我发现将程序状态建模为有限状态机 (FSM) 非常有用,既可以作为隐喻,也可以作为对状态和转换建模的具体方法。例如,FSM 在实现(Web)用户界面时很好地表示 which actions are allowed at which state