有没有关于F# 3.0的单篇文章概述?

14

当LINQ首次推出时,我记得微软发布了一些精彩的介绍性文章,涵盖了C# 3.0,DLinq和XLinq(今天称为LINQ to SQL和LINQ to XML)。

我正在寻找一些类似于这些概述的F# 3.0入门文章。

F#团队的入门文章很短,没有详细说明。虽然它链接到一些MSDN示例和演练,但我想知道是否有人可以推荐一篇文章,介绍F# 3.0的新功能,讨论它们被添加的原因,并展示一些实例。


7
我想知道那些投票将问题关闭为离题的人能否详细说明它如何“通常与在faq中定义的某种程度上与编程或软件开发相关”。 - Dan Abramov
2
我不知道你怎么想,但我对自动属性感到兴奋。(我知道这听起来很傻,但我被C#宠坏了。) - ChaosPandion
有什么想法为什么不可变属性允许使用自动语法?member val Foo = foo并不比member x.Foo = foo更短。也许可以应用优化,因为范围内没有this引用? - Daniel
1
@Daniel - auto-prop中的初始化器在构造函数中只运行一次,而属性rhs每次调用时都会运行。因此,如果“foo”具有副作用,则很重要。无论如何,是的,get/set情况比仅获取情况更有价值,但这里的语法是统一/正交的。 - Brian
4个回答

7
尽管不是一篇文章,F# 3.0 Sample Pack 包含了一些新功能的代码示例列表,这些示例都可以在线阅读(和下载):


这是一个不错的网站,但是示例代码往往格式不好甚至风格差强人意。不过,它仍然是Type Providers的极佳示例。 - Ramon Snir
@Ramon,感谢您的评论。您知道有什么其他的编译示例吗?如果您知道,请分享一下。 - Dan Abramov

6

6

我自己的简要总结是...

http://blogs.msdn.com/b/fsharpteam/archive/2011/09/14/f-3-0-developer-preview-now-available.aspx

提供了使用类型提供程序和查询进行信息丰富编程的概述。

MSDN上的新功能文档快速概述了新功能。

类型提供程序(连接到外部丰富数据源)和查询(支持查询运算符、LINQ、可空类型)彼此紧密地联系在一起。将SI单位添加到库中确保单一定义,这样例如两个第三方库就不会各自定义自己的'meter'类型,然后成为名义上不兼容的类型(来自科学领域的许多外部数据源都具有度量单位信息)。因此,这些语言特性都非常符合信息丰富编程的推动目标。

我认为其他语言特性只有自动属性(参见这里),使用'member val';这是一个备受请求的特性,而且很小并且易于实现)和三引号字符串(我现在无法在文档中找到它们,我会提交一个文档错误)。

到目前为止,IDE功能主要集中于改进IntelliSense和Parameter Help,这再次与信息丰富编程主题联系在一起,其中这些IDE功能是类型提供程序体验的关键部分。


Brian,我刚意识到我错把你的帖子当成唐的了。已经更正了我的错误,非常抱歉。 - Dan Abramov
三引号字符串只允许嵌入双引号吗?还有其他好处(插值——拜托了)吗? - Daniel
它们允许任何内容,除了连续的三个双引号;非常适合用于包含大段XML片段及其属性的字符串。(不支持插值。) - Brian
SI单位作为核心库的一部分是非常好的事情,以前你只能选择自己编写代码或者导入整个PowerPack来实现这个功能... - Benjol

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接