10.4 第十章小结

10.4 第十章小结

 

    在这一章中,我们探讨了有关函数程序的效率问题,讨论了如何以函数方式处理大量的数据。因为,大多数的函数程序使用递归实现,这一章的很大一部分是围绕这个主题。

    你看到了,使用递归时,我们必须仔细写自己的代码,以避免由于递归太深,引起堆栈溢出的错误。在本章开始,我们讨论了一种技术,称为尾递归,我们用它来重写熟悉的列表处理函数(如map and filter),以避免堆栈溢出的方式。单靠尾递归,不能帮助我们解决所有问题,所以,我们还讨论了连续,并使用它们写了一个 简单的树处理函数的健壮的版本。

    我们还探讨了优化处理函数性能的技术。特别是,我们看到了记忆化,能够缓存无副作用的函数结果。有效的优化依赖复杂性分析,所以 ,我们讨论了函数式数据结构和性能特点。在选择算法和操作时要小心,因为,一些差别看起来很小,比如,是否需要在函数式列表的头或尾添加元素,可能显著影响性能。我们还谈到了数组, 它不是主要的函数式数据结构,但如果我们非常小心,也可以用于函数 。

    在下一章中,我们将继续探讨在函数语言中,实现算法的常见技巧。下一章的许多主题都涉及到使用不可变数据类型,以及函数编程的数学的清晰度。

你可能感兴趣的:(代码,.net,重构,职场,休闲)