码迷,mamicode.com
首页 >  
搜索关键字:实用函数    ( 201个结果
11.1.2.1 使用可变数据结构
11.1.2.1 使用可变数据结构   在清单11.4 中,可以看到两个函数,处理的集合保存了前面示例的地名。这一次,我们使用C#,把地名保存在标准的List 类型中,它是可变的。   清单11.4 处理保存在List 中的地名(C#) List LoadPlaces() {     [1]   returnnew List { "Seattle", "Prague",     "...
分类:其他好文   时间:2015-01-07 13:16:51    阅读次数:131
11.1.1 重用常见的代码块
11.1.1 重用常见的代码块   一个最好的编程实践,就是避免在多个地方重复相同的代码。如果有两个类似程序,就值得考虑把它们合并成一个;新的程序需要有新的参数,描述代码按照不同于原来的路径。 在函数式编程中,我们有一个强大的武器:函数值作为参数值使用的能力,这使得函数或者方法的参数化更容易。为了演示,假设我们有一个关于城市的信息数据库,我们要用数据生成几份报表。 我们先写一个加载数据的函...
分类:其他好文   时间:2015-01-06 15:36:38    阅读次数:241
11.1 重构函数式程序
11.1 重构函数式程序   重构是许多现代开发方法的一个主要部分。在一些语言中,这种技术也支持集成开发环境(IDE),比如,Visual Studio 中的C# 编辑器。大多数重构技术是为面向对象范式而开发的,但是,我们将从函数的角度来讨论。   重构   重构是修改源代码的过程,改善设计,但不改变其含义。重构的目标是使代码更具可读性,在未来更容易修改或扩展,或者改进其结构。一个简单...
分类:其他好文   时间:2015-01-05 11:13:31    阅读次数:126
jQuery动态加载JS以减少服务器压力
如果您要创建一个web2.0的应用程序,那么你的网页会包括大量的JavaScript文件,这些可能会拖慢您的网页。因此,动态加载JavaScript代码到您的网页是一个好主意,即只有当实用他们的时候加载它们。这种策略可以帮助你减少你的网页的加载时间。幸运的是,jQuery提供了一个内置的实用函数,$...
分类:Web程序   时间:2015-01-05 00:22:03    阅读次数:168
第十一章 重构和测试函数式程序
第十一章重构和测试函数式程序   本章介绍 ■重构函数式程序 ■使用不变性推理代码 ■为 F# 程序写单元测试 ■使用延迟值缓存结果   这本书的主题之一就是,函数编程理如何使解代码更容易理解,只需要通过阅读就可以;特别是在需要修改陌生程序,或者通过组合现有函数实现行为,或者重构现有的代码时,尤为重要。函数式编程更容易重构,缘于清晰度和模块化:可以改善代码,并且有信心这种改变不会破...
分类:其他好文   时间:2015-01-04 17:15:20    阅读次数:136
10.4 第十章小结
10.4 第十章小结 在这一章,我们探讨了与函数程序效率有关的问题,讨论了用函数方式处理大量数据。因为大多数函数程序使用递归实现,这一章的很大一部分就是围绕这个主题。 可以看到,使用递归的代码,一定要仔细,避免由于递归太深,引起堆栈溢出的错误。在本章开头,我们讨论了一种称为尾递归的技术,它可用来重写我们熟悉的列表处理函数(如map and filter),能避免堆栈溢出。单靠尾递归,不...
分类:其他好文   时间:2015-01-04 09:58:51    阅读次数:112
10.3.2.1 使用连续处理树
10.3.2.1 使用连续处理树   要把我们以前实现的 sumTree 函数,转变成使用连续的版本,首先,要给这个函数添加一个额外的参数(连续);其次,还需要改变函数返回结果的方式,不是简单地返回值,而是把它作为参数值,给连续进行调用。 清单 10.18 是代码的最终版本。   清单 10.18 使用连续,计算树中元素的和 (F# Interactive) > let rec sumT...
分类:其他好文   时间:2015-01-03 21:06:33    阅读次数:186
10.3.2 利用连续的代码
10.3.2 利用连续的代码   问题是,我们既希望做尾递归调用,还要在尾递归调用完成后,再执行一些代码。这看起来是一个棘手的问题,但有一个有趣的解决方案。我们把要在递归调用完成后执行的所有代码,拿来作为参数值,提供给递归调用,这样,我们要写的函数将仅只包含一个递归调用。 可以把这个看作是另一种类型的累加器参数:我们不是累加值,而是累加“需要在以后运行的代码”。现在的问题是,我们如何能拿到其...
分类:其他好文   时间:2015-01-03 19:53:36    阅读次数:140
10.3.1 树处理的难点
10.3.1 树处理的难点   我们来看一个简单的处理树的例子。清单 10.15 声明了一个表示整数树的类型,并用递归函数,统计树中所有值的和。   清单 10.15 树型数据结构并计算元素的和 (F# Interactive) > type IntTree =    [1]     | Leaf of int     | Node of IntTree * IntTree;; t...
分类:其他好文   时间:2015-01-03 17:26:39    阅读次数:155
10.2.3.2 在 C# 中以函数风格使用数组
10.2.3.2 在 C# 中以函数风格使用数组   由于有了 LINQ to Object,在 C# 3.0 中,我们已经可以使用许多函数结构来处理数组。大多数 LINQ 运算符不返回数组:如果在数组上调用 Enumerable.Select,结果将返回 IEnumerable。在某些情况下,我们还是愿意将结果保存在数组中,避免调用Enumerable.ToArray,将结果序列复制回数组的...
分类:编程语言   时间:2015-01-03 14:42:13    阅读次数:205
201条   上一页 1 ... 11 12 13 14 15 ... 21 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!