11.3.4.1 实现或和延迟或
因为我们要实现运算符,需要将其定义为真正的运算符,而不只是通常的函数。就像在第六章学过的,可以在 F# 中引入自己的运算符,清单 11.17 显示了两种不同的或运算符。
[
清单序号还有问题。从 11.14 开始,就变成了 11.17 了。
]
清单 11.17 比较提前和延迟的或运算符 (F# Interactive)
l...
分类:
其他好文 时间:
2015-01-14 16:52:08
阅读次数:
187
11.3.3 用函数模拟延迟计算
在F# 和C# 中计算顺序是提前的:作为给函数参数使用的表达式,在函数自身开始执行之前就计算好了。在C# 和F# 中,我们可以使用函数值模拟延迟计算,另外,F# 甚至有一个专门的关键字,支持延迟计算。
但首先,对于提前计算规则有一个例外,你肯定知道,并经常使用,但只是因为太常用,反而可能没有意识到它的特别。有些特定的C# 运算符,比如,逻辑或(||)、逻...
分类:
其他好文 时间:
2015-01-12 16:33:35
阅读次数:
189
11.3.1.2 Haskell 的延迟计算策略
在延迟计算策略(lazy evaluation strategy)中,函数的参数值,在函数调用时不会计算,直到后来用到这个值时才计算。我们回到前面的例子:
TestAndCalculate(Calculate(10));
在这里,Haskell 直接跳转到TestAndCalculate 函数主体。Haskell 会记住参...
分类:
其他好文 时间:
2015-01-12 11:36:32
阅读次数:
160
局部优化:1、去除不需要的局部对象2、尽量通过引用,而不是传值,来处理对象3、把类中的小函数设置为内联函数4、对计算的处理: 一定会有的计算: 提前计算 (小的范围,计算量比较小) 可能会有的计算:延迟计算 不会有的计算: 不计算 5、利用模板代替虚函数6、尽量使用简单的数据类型7、不用使用虚函数的...
分类:
其他好文 时间:
2014-07-17 22:39:01
阅读次数:
232
1971. Graphics Settings
Time limit: 2.0 second
Memory limit: 64 MB
给定n个选项,m个操作,问the image generation speed=p/(W*H*∏ki(第i个选项开启))在哪个区间。
Input
第一行为 n (0 ≤ n ≤ 100 000). 接下来第i行分别有指令名 si, ...
分类:
其他好文 时间:
2014-07-02 08:16:27
阅读次数:
333
Executor框架使用Runnable
作为其基本的任务表示形式。Runnable是一种有局限性的抽象,然后可以写入日志,或者共享的数据结构,但是他不能返回一个值。
许多任务实际上都是存在延迟计算的:执行数据库查询,从网络上获取资源,或者某个复杂耗时的计算。对于这种任务,Callable是一...
分类:
编程语言 时间:
2014-05-30 19:50:25
阅读次数:
335