写点什么

为 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:421726
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

全球通信产业展会风向标|2025中国信息通信展9月在京召开

AIOTE智博会

通信展 信息通信展 北京通信展

传统企业如何玩转平台工程?2 个运维靠它管 50 + 应用

北京好雨科技有限公司

云原生 k8s rainbond 企业号 5 月 PK 榜

安全,稳定可靠的政企即时通讯数字化平台

BeeWorks

即时通讯 IM 企业级应用

为什么JobLeap.cn的新一代智能职业发展平台比传统求职软件更有效

Y11

求职 找工作 秋招 春招 找实习

优哩哩的推广模式是什么?

web3区块链创业团队DappNetWork

火热邀测!DataWorks数据集成支持大模型AI处理

阿里云大数据AI技术

人工智能 数据分析 数据处理 #大数据 Dataworks

时序数据库 IoTDB 集成 DBeaver,简易操作实现时序数据清晰管理

Apache IoTDB

华东站最后席位丨精彩嘉宾阵容,完整日程揭秘!2025 Altair 区域技术交流会邀您共探 AI + 仿真的智能未来

Altair RapidMiner

人工智能 AI 汽车 数字孪生 CAE

ActiveMQ 可观测性最佳实践

观测云

Activemq

懒懒笔记 | 课代表带你梳理【RAG课程 9&10:大模型微调与思维链蒸馏】

商汤万象开发者

MySQL性能优化策略及高可用架构设计与实践+监控与运维自动化!

程序员高级码农

MySQL 编程 程序员

如何利用jobleap.cn更有效地转行以及找到满意的工作

Y11

找工作 简历 秋招 春招 找实习

BeeWorks:构建企业智能数字化协作中枢,实现办公与业务系统的无缝整合

BeeWorks

即时通讯 IM 企业级应用

韩国电商巨头Coupang 如何利用分布式缓存加速机器学习模型训练

Alluxio

机器学习 AI 模型训练 电商平台 Coupang

什么是新一代智能职业发展平台?jobleap.cn领导的新一代求职平台与传统App有何不同?

Y11

求职 找工作 秋招 春招

React-native新架构

溪抱鱼

前端 React 框架

HarmonyOS实战:腾讯IM之聊天列表搭建(一)

IT小码哥

鸿蒙 HarmonyOS NEXT harmoyos 腾讯IM

大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece

武子康

大数据 hadoop mapreduce hive

ETL怎么实现多流自定义合并?

谷云科技RestCloud

Java join ETL 数据集成工具 多流合并

Databend 产品月报(2025年5月)

Databend

掘金社区 MCP 上线、Claude 4与Gemini 2.5正面交锋、AI编程助手能力再进化—掘金 AI 编程社区周刊

Captain

傻瓜式一键部署你的网页,让全世界看见你的想法

Captain

Alluxio AI助力知乎千卡模型训练

Alluxio

智能驾驶感知算法任务简介

地平线开发者

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

iVX+ARM 边缘计算技术架构解析:从底层架构到行业应用

代码制造者

谷歌云授权代理|90%用户不知道的5个谷歌云免费实用技巧

Cloud Ace 云一

谷歌云

为什么说JobLeap.cn是文科生找工作的最佳选择?

Y11

找工作 应届生 秋招 春招 找实习

低代码是什么?2025技术详解:平台分类、用户群体与发展趋势

优秀

低代码 低代码开发 低代码平台

如何利用JobLeap.cn找到第一份实习

Y11

找工作 秋招 春招 找实习

iVX:图形化编程工程化实践及技术演进

代码制造者

优哩哩是什么平台?

web3区块链创业团队DappNetWork

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