学习Clojure
纯函数—对于给定的输入,函数始终返回相同的输出,而不更改任何其他变量。 将函数应用于输入数据以将数据从一种状态转换为另一种状态 不变性-对对象的任何更改都不会更改现有值,而是返回具有更改的新对象 引用透明性-永远不会更改传递给函数的变量的值 使用表达式—在OOP / Omping编程代码中,代码表示为具有本地分配的语句(对引用进行突变)。 由于FP无法对数据进行变异,因此无法为变量赋值,因此FP使用表达式来求结果。 尾递归—您必须听说过递归,但不确定尾递归。 在递归中,对结果的评估从最后一次递归调用的返回开始,并且所有中间函数都被堆叠以供以后执行。 众所周知,堆栈的大小有限。 使用具有不变性的递归意味着创建更多变量和函数调用,这将导致堆栈溢出错误。 To正是为什么使用尾部递归而不是递归的原因。 两者之间的唯一区别是对结果的评估从第一个函数调用开始,结果在下一个函数调用中传递。 有限的对象创建和函数调用。 请参阅此处http://sercanulucan.com/blog/2017/01/four-ways-of-fibn-with-clojure/ 函数是一流的实体—您可以想到的任何问题都始于可以通过一组函数传递以达到数据结束状态的数据。 高阶函数-可以返回函数并将函数作为参数传递给其他函数。…