码迷,mamicode.com
首页 > 其他好文 > 详细

第十章 数据结构的效率

时间:2014-12-16 17:14:48      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:f#   函数编程   实用函数编程   数据结构   

第十章数据结构的效率

 

本章介绍

■优化和改进递归函数

■使用尾递归(tail-recursion)和连续(continuations)

■高效地使用列表和数组

 

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

如果已经开发任何长时间运行的程序,几乎可以肯定,写的程序通常会导致堆栈溢出异常。在函数编程中,导致这种错误,很可能是由于写的递归函数不成熟,所以,我们将探讨几种解决函数在处理大量数据时,可能导致此错误的方法。这既是我们开始的主题,在本章的末尾还要再回到这个主题。

在有关递归的论述中间,我们重点在函数式列表和数组。处理函数式列表,最重要的理解其原理,这样,就可以有效地使用;F# 还支持数组,在某些情况下,能提供更好的性能。尽管数组主要是命令式数据类型,但是你会发现,我们也可以用非常具有函数式的方式使用。

第十章 数据结构的效率

标签:f#   函数编程   实用函数编程   数据结构   

原文地址:http://blog.csdn.net/hadstj/article/details/41960685

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!