写点什么

F# 3.0 —— LINQ + 类型提供程序 = 富信息编程

  • 2011-09-27
  • 本文字数:1176 字

    阅读完需:约 4 分钟

微软最近宣布了F# 3.0 的开发者预览版——新特性包括通过查询表达式支持LINQ,以及类型提供程序系统和一组内置的提供程序,使得对各种数据源的编程变得简洁。

F# 3.0 的富信息编程特性使你可以对数据库、Web 服务、Web 数据源和数据代理直接编程。比如说,你现在可以这样做:

<p><span face="Consolas"><span color="#000000"><span>[<Generate><generate>] <br></br></generate></span></span></span><span face="Consolas"><span><span><span color="#0000ff">type</span></span><span color="#000000"> Northwind = ODataService<</span><span><span color="#a31515">"http://services.odata.org/Northwind/Northwind.svc/"</span></span></span></span><span face="Consolas"><span><span color="#000000">> <br></br></span><span><span color="#0000ff">let</span></span><span color="#000000"> db = Northwind.GetDataContext()</span></span></span></p><p><span color="#000000"><span>query { </span></span><span><span><span color="#0000ff">for</span></span><span color="#000000"> cat </span><span><span color="#0000ff">in</span></span><span color="#000000"> db.Categories </span><span><span color="#0000ff">do</span></span> <br></br></span><span face="Consolas"><span color="#000000"> select (cat.CategoryID, cat.CategoryName, cat.Description) } <br></br></span></span><span><span face="Consolas"><span color="#000000"> |> Seq.iter (</span><span><span color="#0000ff">fun</span></span></span></span><span face="Consolas"><span><span color="#000000"> (id, name, description) –><br></br></span></span></span><span face="Consolas"><span><span color="#000000"> printfn </span><span><span color="#a31515">"ID: %d\nCategory: %s\nDescription: %s\n"</span></span><span color="#000000"> id name description)</span></span></span></p>常用的几种数据源已有内置的类型提供程序了:OData 服务、数据库连接、数据库架构、通过实体数据模型指定的数据、Web 服务和资源文件。此外,类型系统是开放和可扩展的,这允许开发者以及第三方创建他们自己的提供程序。

其它新特性的简述:

  • 自动实现的属性允许属性没有后端存储
  • 参数帮助和增强智能感知
  • 为可空类型提供类库支持,包括转换运算符和算术运算符
  • 适用于国际单位系统(SI)的度量单位类型。这之前是放在 F# PowerPack 里的,现在已经归入 F#核心库了。

你可以在 MSDN 文档里查阅详情。你也可以从 CodePlex 下载 F# Sample Pack 查看这些特性。

F#是一种多范式编程语言,它针对.NET Framework,并贯彻了函数式编程命令式编程和面向对象编程的原则。

查看英文原文: F# 3.0 – LINQ + Type Providers = Information Rich Programming

2011-09-27 06:122520

评论

发布
暂无评论
发现更多内容

架构师课程学习第一周心得

秤须苑

极客大学架构师训练营

架构师训练营-Week1-作业2

车小勺的男神

小师妹学JavaIO之:NIO中Channel的妙用

程序那些事

io nio 小师妹 buffer channel

架构师训练营-Week1-作业1

车小勺的男神

SpringBoot分布式任务中间件开发 附视频讲解 (手把手教你开发和使用中间件)

小傅哥

小傅哥 中间件 springboot 分布式任务

就餐卡系统设计

小胖子

架构方法

shangyu

极客大学架构师训练营

【第一周作业】食堂就餐卡系统设计

黑莓

架构师训练营第一周学习总结

常江舟

极客大学架构师训练营

架构师训练营--第1周总结感想

芥菜

玄姐公开课总结【构建基于ServiceMesh的普适业务中台架构】

魔曦

架构 Service Mesh

《第一章:架构师如何做架构》总结

尔东雨田

极客大学架构师训练营

week01作业

seki

让独立思考成为习惯

Neco.W

学习 深度思考 思考

架构师第一周上课总结

种个大西瓜

食堂就餐卡系统设计 - 简陋版

X﹏X

第一周:架构方法-架构师如何做架构学习总结

DZ

使用VSCode连接到IBM Cloud区块链网络

程序那些事

智能合约 hyperledger fabric ibm cloud

架构师训练营——第一周总结

养乐多

Week 01 食堂饭卡系统设计

Geek_165f3d

【第一周】学习总结

黑莓

食堂就餐卡设计说明书

架构方法:架构师如何做架构

第1周 学习总结

安阳

【总结】架构师如何做架构

小胖子

架构师训练营作业一:食堂就餐卡系统设计

常江舟

极客大学架构师训练营

week01总结

seki

极客大学架构师训练营

量子技术到底有哪些突破值得重点关注?

蔡芳芳

架构师训练营——食堂就餐卡系统设计

养乐多

架构师训练营——第一周总结

Andy风

食堂就餐卡系统设计文档

秤须苑

极客大学架构师训练营

F# 3.0 —— LINQ + 类型提供程序 = 富信息编程_.NET_Roopesh Shenoy_InfoQ精选文章