功能编程和马尔可夫链是否有关联?
银鸿描述为马尔可夫链的一个特性:功能编程和马尔可夫链是否有关联?
未来是独立给出本
https://www.youtube.com/watch?v=lfHX2hHRMVQ(4分钟到视频)过去
这引起了共鸣的因为我目前正在学习函数式编程(FP)。
在FP你也可以忽略过去,因为你的函数只需要以执行一些动作,并输出一个新状态的当前状态。这并不一定适用于面向对象,因为您的输出可能取决于不同地方的多个州。
有没有我不知道的FP和马尔可夫链之间的一些更深的联系?
它是准确的说,例如,写在FP功能决定马尔可夫链?
有的确是一个马尔可夫链和函数式编程之间的连接。马尔科夫链是一种类型的非确定性Finite-State Machine(FSM)的,而链纯功能将产生一个确定的FSM。这里需要注意的是,在现实世界中(例如,Web应用程序),您通常还需要不纯的函数(例如,修改或查询外部数据库)。
我发现将程序状态建模为有限状态机(FSM)非常有用,它既是一种隐喻,也是一种模拟状态和转换的具体方式。例如,当实现(Web)用户界面时,FSM很好地代表which actions are allowed at which state。
优秀 - 我喜欢将纯功能程序视为确定性FSM的想法。我认为仅仅为FSM增加一些随机性给了一个马尔可夫链非常酷,这似乎与功能编程完全无关。 – COOLBEANS
你可能只是在考虑状态机(AKA有限自动机)。 –
“不同的地方”!=“过去”。另外在OOP中,未来状态将仅取决于当前状态,而不取决于先前的行为。这是时间的基本属性,这使得马尔可夫链适用于建模。除了两者与数学密切相关之外,它与FP无关。 – Bergi
自马尔科夫在1922年去世以来,我会说他对马尔可夫链的想法不包括函数式编程。 – duffymo