
散
文章平均质量分 72
心想才事成
这个作者很懒,什么都没留下…
展开
-
partial class 散类
散类 partial class 形散而神不散原创 2014-02-14 21:50:43 · 745 阅读 · 0 评论 -
3.4.1.1 在 C# 中传递函数作为参数值
3.4.1 处理数字列表 假设我们想写一个类似于 SumList 的方法,但是把加法改成乘法。这个修改看起来很简单:可以复制 SumList 方法,然后进行修改。其中只有两个变化: int MultiplyList(FuncList numbers) { if (numbers.IsEmpty) return 1; [1] else return number翻译 2014-09-28 17:59:08 · 6945 阅读 · 0 评论 -
5.5.3.1 散函数应用(PARTIAL FUNCTION APPLICATION)
5.5.3.1 散函数应用(PARTIALFUNCTION APPLICATION) 要展示对函数的这种新理解情况,非常重要,让我们把注意力返回到列表。假设有一个数字列表,我们想要给列表中的每个数字都加上 10。在 F# 中,可使用 List.map 函数完成;在 C# 中,可以使用 LINQ 中的 Select 方法: list.Select(n => n + 10) ß C#翻译 2014-10-24 20:08:03 · 798 阅读 · 0 评论 -
6.4.2 使用 bind 函数
6.4.2 使用 bind 函数 下一步,我们想消除外层的模式匹配,这,使用 Option.map 是做不到的,因为这个函数总是,输入为 None,转换后输出是 None,输入为 Some,转换后输出是包含其他值的 Some。在外层的模式匹配中,我们要做的事情根本不是这样,即使输入值是 Some,而如果读第二个输入失败,仍可能返回 None。这样,作为参数值的 lambda 函数指定的类型翻译 2014-10-31 21:08:41 · 783 阅读 · 0 评论 -
6.3.1 处理计划列表
6.3.1 处理计划列表 在前面的示例中,因为我们想要打印新的计划,因此,使用了命令式的 for 循环;如果想要创建包含新的计划列表,可以使用 List.map 函数,就像这样: let newSchedules = List.map(fun s –> s |> mapSchedule (fun d -> d.AddDays(7.0)) )schedul翻译 2014-10-31 10:31:57 · 705 阅读 · 0 评论 -
6.4.4 实现选项类型的操作
6.4.4 实现选项类型的操作 绑定(bind)和映射(map)的实现有类似的结构,因为,两者都是依据选项值进行模式匹配的高阶函数。我们来看一看 F# 和 C# 的实现,这是在 C# 中实现函数式概念的最好示例。我们先看一下清单 6.14,这是映射操作的实现。 清单 6.14 用 F# 和 C# 实现 map 操作 F# Interactive C#翻译 2014-11-02 21:24:16 · 652 阅读 · 0 评论 -
7.2.2 在窗体上显示绘图
7.2.2 在窗体上显示绘图 绘图与第四章的示例类似。因为绘图需要一定的时间,我们将在内存中创建位图,绘制好文档,然后,在窗体上显示位图,而不是每次窗体失效时都绘制文档。我们先看一下非常有用的函数式编程模式,这一节就将使用。 “Hole in the Middle(中间有洞)”模式 [真心不知道,Hole in the Middle 是什么意思?] 写代码的一个常见翻译 2014-11-25 10:08:56 · 1080 阅读 · 0 评论