Wes*_*eid 8 diagram functional-programming
我倾向于成为一名视觉思想家.因此,如果我可以想象通过程序的数据流,我可以更好地理解它中发生的事情,如果我正在阅读正在发生的事情的文本故事(伪代码).
有没有一种方法可以直观地表示变量和对象流过的方式并通过函数进行更改?优选地,小规模,在单个功能内部以及整个程序的较大规模上工作的东西.
例如用于教授句子图表的英语课程.电气工程师有电路图.计算机科学中是否有同等学历?
我是一个哈斯克勒,所以我会说纯函数式编程.我想到的第一件事是交换图.这些可以用来描述函数和结构如何相互作用; 然而,他们宁愿定义不变量/定律而不是行为.
当考虑评估lambda演算(或基于其的更高级语言)时,另一个有用的知识是表达图,如图缩减中所使用的.它们让您看到表达式的结构,包括共享.当然,只要代码是纯粹的,即没有发生突变,这才有意义.
第三种图,用于可视化数据如何通过函数,是不同类型的数据流图,如箭头所用的(也可用于正常函数,因为(->)是箭头),或SICP的"Hendersion"图表".这些显示了各个功能如何"插在一起".对此的另一个观点是用于绘制流处理/管道和过滤器样式的图表,如大理石图,其更多地关注时间概念(并且,与箭头图相反,确实表示单个值).
小智 3
我也倾向于成为一个视觉思考者。很多时候,当我尝试完成一个项目或者在代码中找不到错误时,我会回到框图中。
对于大型程序来说,这可能会变得混乱,但是您可以在图表中“遍历”一段数据,看看会发生什么。