在函数式编程中使用mental images

时间:2011-01-20 15:24:35

标签: functional-programming

使用纯函数式语言时,某种形式的心理图像或图表是否有助于可视化递归和发展连续性?

1 个答案:

答案 0 :(得分:5)

首先,请查看this相关讨论。

如上所述,函数式编程已经非常接近数学符号,并且可以通过符号数学很好地理解和操纵。通常不需要OO意义上的 Diagrams ,因为它们可以模拟FP中不存在的状态交互。

例如递归在这种符号方法中处理得很好。您可以在数学意义上将定义直接扩展为真正的方程式,以证明特征得到一个非常直接,几乎类似伪代码的概述。

map f [] = []
map f (x:xs) = (f x) : map f xs

没有比这更清楚了!

尽管如此,仍有一些隐喻对某些概念很有用,例如建模状态/序列的功能方法,即 monads applicatives 箭头。有许多漂亮的图像可视化他们如何传播他们的结果。例如:arrows的传送带比喻:

alt text