使用纯函数式语言时,某种形式的心理图像或图表是否有助于可视化递归和发展连续性?
答案 0 :(得分:5)
首先,请查看this相关讨论。
如上所述,函数式编程已经非常接近数学符号,并且可以通过符号数学很好地理解和操纵。通常不需要OO意义上的 Diagrams ,因为它们可以模拟FP中不存在的状态交互。
例如递归在这种符号方法中处理得很好。您可以在数学意义上将定义直接扩展为真正的方程式,以证明特征和得到一个非常直接,几乎类似伪代码的概述。
map f [] = []
map f (x:xs) = (f x) : map f xs
没有比这更清楚了!
尽管如此,仍有一些隐喻对某些概念很有用,例如建模状态/序列的功能方法,即 monads , applicatives ,箭头。有许多漂亮的图像可视化他们如何传播他们的结果。例如:arrows的传送带比喻: