第十章 数据结构的效率

第十章 数据结构的效率

 

本章介绍

■ 优化和改进递归函数

■ 使用尾递归和连续

■ 高效地使用列表和数组

 

    到目前为止,在这本书中,我们已经使用过的函数技术有,递归和函数式数据结构,比如,不可变列表。我们以最简单的方式写代码,使用基本的  F# 集合类型(列表),直接表达我们的意图。在很多情况下,这工作得很好,但是,当它用来处理大型数据集时,"显而易",代码有时会导致性能问题。在这一章,我们将看一些写代码的技术,不管输入的大小,研究如何优化处理数据的函数的性能。我们仍会努力保持为代码尽可能的可读。

    如果你已经开发任何重大的长的时间,你几乎可以肯定,写的程序会导致堆栈溢出异常。在函数编程中,很容易由于天真写递归函数,而可能导致此错误, 所以,我们将探讨几种方法,处理可能导致此错误的函数,在处理大量的数据时。这将是我们开始的主题,在这一章的末尾再返回。

    在有关递归的讨论之间,我们将讨论函数式列表和数组。在处理函数式列表时,理解它们是如何工作的,是重要的,这样,你可以有效地使用它们。F# 还支持数组,在某些情况下,能给我们更好的性能。尽管数组主要是命令式的数据类型,你将看到,我们可以用非常具有函数式的方式使用它们。

你可能感兴趣的:(职场,休闲)