写点什么

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

评论

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

Linux 基金会报告解读:开源 AI 重塑经济格局,有人失业,有人涨薪!

白鲸开源

人工智能 开源 AI 观点 开源AI

FCPX插件-82个音频元素信息图表图形动画 Infographic Elements Audio Motion

晨光熹微

龙蜥社区第 34 次运营委员会会议圆满结束

OpenAnolis小助手

操作系统 龙蜥生态

KWDB多模分布式数据库助力共享打印机物联网IoT最佳实践落地,实现高效存储与查询时序数据

KaiwuDB

FCPX插件-165个社交媒体字幕条标题图形排版介绍宣传包装动画

晨光熹微

Cloud Kernel SIG季度动态:ANCK 5.10/6.6新版本发布,主线适配Sw8A&RSIC-V新平台

OpenAnolis小助手

操作系统 龙蜥sig

Markdown怎么快速生成PPT?详细的AI制作教程来了!

职场工具箱

AI markdown 办公软件 AIGC AI生成PPT

人工智能丨让你的AI更聪明,这7个开源MCP项目不要错过

测试人

低代码:JNPF+AI,解锁“智”造未来

引迈信息

低代码×数智化OA:企业级敏捷办公的技术融合路径与实践验证

不在线第一只蜗牛

KaiwuDB 时序数据库深度解析:在物联网领域实战指南

KaiwuDB

Sentieon 项目文章 | 通过深度测序对血浆中游离线粒体 DNA 进行定量和表征

INSVAST

生信分析 Sentieon 变异检测 生物信息分析服务 精准医疗

架构师必备:业务扩展模式选型

量贩潮汐·WholesaleTide

架构 业务

开源 vs 付费:代练系统护航小程序源码的选择指南与性价比对比

DUOKE七七

MySQL uniapp vue2 thinkphp6

Anolis OS 23 架构支持家族新成员:Anolis OS 23.3 版本及 RISC-V 预览版发布

OpenAnolis小助手

操作系统 risc-v 龙蜥社区 龙蜥操作系统 Anolis OS

持续演进!Sermant 2.3.0 Release版本正式发布

华为云开源

开源 微服务架构 开源社区 字节码增强 流量治理

上海证券携手非凸科技,共筑开放共赢的私募服务新生态

非凸科技

B 站推进视频播客战略,「代号 H」AI创作工具同步研发;工业级开源记忆操作系统 MemOS,支持模型持续进化和自我更新丨日报

RTE开发者社区

技术分享 | EC2多网卡与多IP配置

伊克罗德信息科技

MySQL行锁功过:怎么减少行锁对性能的影响?

量贩潮汐·WholesaleTide

MySQL 数据库

Databend 产品月报(2025年6月)

Databend

你的救星来了!电脑硬盘坏了数据恢复教程,帮你找回重要资料

阿拉灯神丁

EasyRecovery 数据恢复软件 硬盘数据恢复 硬盘故障 数据丢失

Confidential AI 实践:基于 Anolis OS 部署 Intel TDX 保护的 Qwen 模型

OpenAnolis小助手

AI 操作系统 龙蜥社区 Anolis OS Confidential AI

搭建持久化的 INFINI Console 与 Easysearch 容器环境

极限实验室

数据库 Docker

苹果电脑系统数据怎么清理? Mac的系统数据占用太多怎么清除?

阿拉灯神丁

MacBook 存储空间 Mac系统清理 CleanMyMac X中文 磁盘清理软件

冲刺IPO!摩尔线程以硬核技术叩响科创板大门

新消费日报

FCPX模板-褶皱纸张元素定格动画图文快闪开场片头Stop Mption Opener

晨光熹微

三级缓存解决了循环依赖问题?别被骗了,一级缓存就够了!

电子尖叫食人鱼

Java spring 缓存

龙蜥大讲堂智算技术专场直播预告:围绕基于Anolis OS DCU部署、异构计算等主题分享

OpenAnolis小助手

操作系统 龙蜥社区 龙蜥大讲堂

最新 HarmonyOS API 20 知识库 重磅推出

万少

HarmonyOS

以数据赋能高校:全域数据集成平台的应用场景

谷云科技RestCloud

数据处理 ETL 数据集成

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