10.4 第十章小结

10.4 第十章小结

 

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

    你看到了,使用递归时,我们必须仔细写自己的代码,以避免由于递归太深,引起堆栈溢出的错误。在本章开始,我们讨论了一种技术,称为尾递归,我们用它来重写熟悉的列表处理函数(如map and filter)
堆栈溢出,使他们的免疫。尾递归,不能单靠帮助我们在任何情况下,
所以我们也在延续和使用他们写了一个健壮的版本
简单的树处理功能。
我们还探讨了优化处理功能的性能技术。
特别是,我们看着memoization的,这使我们能够缓存无副作用的函数的结果。有效的优化依赖复杂性分析,所以
我们看着功能数据结构和性能特点。我们
有选择算法和操作时要小心,因为一些分歧
看起来小,如我们是否功能的头部或尾部添加元素
名单,可以对性能有重大影响。我们还谈到数组,
这不是主要功能的数据结构,但可以使用的功能,如果
我们非常小心。
在下一章中,我们将继续实施我们的常见技巧的探索
在功能性语言的算法。许多从以下主题
章都涉及到使用不可变的数据类型和数学的清晰度
功能性编程。

你可能感兴趣的:(递归,职场,休闲,函数编程)