再看函数式编程
Posted Lisp与他们
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了再看函数式编程相关的知识,希望对你有一定的参考价值。
之前使用 Lisp 写代码的时候,脑海中写代码的思维和用其他语言写代码一样。之后经人提醒,才重视起函数式编程,但也只是停留在表面,不破坏函数的参数。现在看了书,理解也多了一点。
函数式编程意味着利用返回值而不是副作用来写程序。副作用包括破坏性修改对象和变量赋值。
粗暴地讲,就是不修改传给函数的参数,而是返回结果。如果我们需要对参数进行一些操作后修改,需要显式把函数返回的值赋值给自身。破坏性操作虽然会修改参数,但返回值并不一定跟被修改后的参数一样,所以依旧利用的是其返回值。
但不修改函数参数并不一定是函数式编程。在函数内部,如果修改了不是函数自己拥有的对象,或者返回值不能被安全地修改,就不是真正的函数式代码。
除此之外,还需要注意的是函数中的数据共享。如果函数中有变量能被其他函数调用修改,如动态变量,这样的代码也不是函数式的。
现在也只是理解了一点点,真正写起来,还没那么顺畅。
以上是关于再看函数式编程的主要内容,如果未能解决你的问题,请参考以下文章