
超越F#基础——活动模式
自从Robert Pickering在去年5月份出版了《F#基础》一书,这个语言发生了很大的变化。除了增加了许多新的特性,F#还成功地从一个实验室项目蜕变成一个广受支持的产品级版本。在本文中,我们请Robert详细讨论F#中新的特性——活动模式。

自从Robert Pickering在去年5月份出版了《F#基础》一书,这个语言发生了很大的变化。除了增加了许多新的特性,F#还成功地从一个实验室项目蜕变成一个广受支持的产品级版本。在本文中,我们请Robert详细讨论F#中新的特性——活动模式。
当博客作者Gustavo Duarte 宣称“学习新语言通常都是在浪费时间”时,他的观点受到了很大的争议。他说,“事实上,学习一种新的语言是桩得不偿失的买卖,把大量的精力花费在低价值的任务上,这种时间投资只能获得很少的回报。”但是,并非所有人都同意这种观点。
随着LINQ、扩展方法和增强后的匿名代理的加入,许多算法已不再需要进行显式的循环了。在一篇名为“如果你正在使用loop语句,那你就做得不正确”的发贴中,Chuck Jazdzewski探讨了C#的一些可能未来。
语言总是不断增加新特性以变得更加强大。当它向开发者提供更多的自由时,其是否会变得越来越强呢?Reg Braithwaite深信未必如此,并且认为如果语言适当地限制开发者,其会变得更加强大。
在最近的博文中,Michael Feathers评论说面向对象编程语言提供了一些内嵌的特性可以将测试简单化,和函数式编程相比较,它显得更有利于恢复。然而,函数性编程语言的拥护者却非常不同意他的看法。博客社区因此引发了一场异常激烈的论战。
“利用惯用语和编程约定作为传达代码意图的方式,可以让我们的代码更易读、更清晰”,觉得这种做法怎么样?这正是Reg Braithwaite所提倡的。他认为,在设计编程语言时,语法或范式上的选择可以做为交流代码意图的途径。
对于熟悉函数式编程语言的开发者而言,可能不需要再解释为什么说“表达式树是非常有用的”,但对其他人来讲,表达式树则是C# 3.0或VB 9.0的所有新特性中最引人注目的一个概念。