在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

为 F#构建类型提供器(Type Provider)

  • 2012-12-31
  • 本文字数:722 字

    阅读完需:约 2 分钟

类型提供器(Type Provider)是 F#的一个有趣的特性。从开发者的角度看,它们和任何静态定义类型一样。但它们并非来自 CLR 程序集中的元数据,而是由在设计时执行的代码根据需要创建的。类型提供器可以从任何源创建,不过数据库和 REST,或者 OData 风格的 Web 服务是最常见的选择。

在 2011 年的一篇文章中,Ivan Towlson 演示了开发者如何在不考虑外部服务的代码中创建类型提供器来减少样板代码。他在例子中创建了可变长度的向量类型和适用于同种向量的通用操作。

后来他和其他人的工作都移到了 FSharpx 项目中。该项目中有 9 组类型提供器,既可以直接使用,也可以将其当作灵感的源泉来创建自己的类型提供器。

  • FSharpx.TypeProviders.AppSettings
  • FSharpx.TypeProviders.Documents
  • FSharpx.TypeProviders.Excel
  • FSharpx.TypeProviders.Freebase
  • FSharpx.TypeProviders.Graph
  • FSharpx.TypeProviders.Machine
  • FSharpx.TypeProviders.Math
  • FSharpx.TypeProviders.Regex
  • FSharpx.TypeProviders.Xaml

FSharpx 是基于 Apache 2.0 许可证提供的开源项目。

Blue Mountain 为依赖 R 这种统计分析语言的人提供了 F# R 类型提供器。该类型提供器也是以开源项目的形式提供的,采用了一种非标准但非常宽松的许可证

关于F#类型提供器的更多信息,请看Joe Pamer 的视频 The Future of F#:Type Providers 以及微软研究院的论文《 F#3.0——Strongly-Typed Language Support for Internet-Scale Information Sources 》。

看一下其他提供类似功能的语言可能也会有所裨益。 Gosu 就是一种这样的语言,它基于 JVM,使用了所谓的开放类型系统(Open Type System)。Cédric Beust对开放类型系统的介绍就很不错,提供了很多深度讨论的链接信息。

参考英文原文 Building Type Providers for F#

2012-12-31 03:421795
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 152.1 次阅读, 收获喜欢 35 次。

关注

评论

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

AI驱动的测试:用Dify工作流实现智能缺陷分析与分类

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

华强筑链*昇腾万里|华为&华强半导体2025昇腾AI技术研讨会·深圳站成功举办

极客天地

我们与恶的距离,只隔着一个谄媚的AI

脑极体

AI

多RID分层路径计算性能优化

天翼云开发者社区

CDN API网关

openresty中使用ngx.sleep(0)防止worker进程阻塞

天翼云开发者社区

API网关

PAI-DLC 支持一键提交 DataJuicer 任务,高效进行大规模多模态数据处理

阿里云大数据AI技术

阿里云 模型训练 PAI 多模态数据处理

志愿者招募 | 一起为 2025 龙蜥操作系统大会“打 call”

OpenAnolis小助手

AI 操作系统 龙蜥操作系统大会

过程管理系统

深圳亥时科技

用代码书写浪漫,网友直呼“太美了”!

王磊

测试同学要求我们产品写用例,然后你们照着测?

测试人

从ROI到战略收益:天润融通告诉你客户联络AI化带来的真实价值

天润融通

SD-WAN如何帮助公司进行网络升级?

光联世纪

互联网 科普 交流 SD-WAN组网

当Dify遇见Selenium:可视化编排UI自动化测试,原来如此简单

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

顶会论文解读:时序数据库 Apache IoTDB 中的时序数据压缩优化【VLDB 2025】

Apache IoTDB

告别 “盲买”!京东 AI 试穿 Oxygen Tryon:让服饰购物从“想象”到“所见即所得”

京东零售技术

从痛点到转型:天润融通ZENAVA如何重塑酒店售前咨询

天润融通

鸿蒙生态突飞猛进,极验如何牢筑业务安全防线?

新消费日报

云栖实录|智能哨兵:AI驱动的云平台风险巡检

阿里云大数据AI技术

阿里云 智能运维 大数据AI

API 管理平台的核心功能有哪些?企业该如何选型?

谷云科技RestCloud

数据安全 API网关 集成平台 API管理 ipaas

mul 与 reduce_sum 的优化实例

地平线开发者

自动驾驶 算法工具链 地平线征程6

BOE(京东方)“百堂故宫传统文化公益课”暨2025照亮成长路收官 推动“科技+教育+文化”可持续发展

爱极客侠

微擎:数字化转型的普惠引擎,破解商户经营三大核心命题

微擎应用市场

AI时代下,程序员的发展与进阶

Comate编码助手

程序员 程序员发展 AI 编程 文心快码 AI编程助手

可信AI存储引热议,金融架构师聚焦稳定性、性能与高可用三大挑战

极客天地

CDN动态加速路径计算集群间数据同步优化方法

天翼云开发者社区

CDN 全站加速

2025 ChatBI 爆火,Aloudata Agent 重构智能数据分析决策范式

Aloudata

数据分析 agent ChatBI 智能问数

Nginx的请求处理

天翼云开发者社区

网络 全站加速 API网关

JNPF V6.1重磅发布!颠覆传统,重塑开发效率!

引迈信息

达梦数据库到Greenplum:用ETL工具实现数据仓库迁移

谷云科技RestCloud

greenplum 数据同步 ETL 数据集成平台 达梦数据库

端到端短视频多目标排序机制框架EMER详解

快手技术

推荐算法 大模型 快手 生成式AI

阿里云 OceanBase 可观测最佳实践

观测云

阿里云

为F#构建类型提供器(Type Provider)_语言 & 开发_Jonathan Allen_InfoQ精选文章