写点什么

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:122461

评论

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

朝着抵抗力最大的路径走-Rank16-强化学习、黑盒攻击、Baseline-SecurityAI

阿里云天池

阿里云

软件测试学习笔记丨Web自动化测试价值与体系

测试人

软件测试 测试开发 Web自动化测试

多IP美国服务器:提升在线业务灵活性与安全性的最佳选择

一只扑棱蛾子

多IP服务器

王海峰:百度500万AI人才培养目标已提前达成

飞桨PaddlePaddle

人工智能 百度 AI BAIDU 文心一言

云手机养号与传统的养号模式有何不同

Ogcloud

云手机 海外云手机 云手机海外版 国外云手机 社媒运营

云手机助力舆情监测,智慧引领信息时代

Ogcloud

云手机 海外云手机 舆情监测 群控 云手机群控

你的数据库用对索引了吗?一文揭秘PolarDB XPlan索引选择

阿里云瑶池数据库

数据库 阿里云 polarDB 分布式,

软件测试基础概念与原则

测吧(北京)科技有限公司

测试

持续集成与持续交付:概念与实践

测吧(北京)科技有限公司

测试

App自动化测试中,如何更好地处理弹窗?

霍格沃兹测试开发学社

百度赵世奇:人人都是「超级个体」时代来临

极客天地

活动报名 | 如何进行全增量一体的异构数据库实时同步

tapdata

oracle cdc 数据总线

企业IT部门在集成类项目中扮演的角色

谷云科技RestCloud

数字化转型 IT ipaas

软件测试学习笔记丨业务架构分析思路

测试人

软件测试

Doris Manager 24.0 版本正式发布!

SelectDB

数据库 大数据 数据仓库 运维管理 集群管理

天池酒瓶瑕疵检测数据集分析及完整baseline

阿里云天池

阿里云

缺陷管理与软件测试的作用

测吧(北京)科技有限公司

测试

测试流程体系:传统、左移与右移的比较

测吧(北京)科技有限公司

测试

MySQL 开源到商业(一):Sun 公司收购了 MySQL AB

小猿姐

MySQL 开源

借助jd.item_get API优化商品名称以提升用户购买意愿

技术冰糖葫芦

api 货币化 API 测试 API 策略

面试官:为什么忘记密码要重置而不是告诉你原密码?

不在线第一只蜗牛

Java 程序员 面试 密码管理

从零到一:如何使用亮数据代理快速收集训练数据打造自己的AIGC大模型

热爱编程的小白白

软件开发流程简介及优化方法论:SCRUM、XP、DevOps

测吧(北京)科技有限公司

测试

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