AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

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

关注

评论

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

机房搬迁更改集群IP

TiDB 社区干货传送门

webhook告警配置

TiDB 社区干货传送门

Cloud + TiDB 技术解读

TiDB 社区干货传送门

【ha知识两问】ha软件是什么?ha软件用途有哪些?

行云管家

高可用 ha 日志审计 双机热备

如何合并与拆分 Word 表格中的单元格

Geek_249eec

C# word VB.NET

DR Auto-Sync 搭建和灾难恢复手册

TiDB 社区干货传送门

管理与运维 数据库架构设计

通过Jmeter批量向TiDB数据库插入数据

TiDB 社区干货传送门

性能调优 实践案例 管理与运维 安装 & 部署 数据库连接

开发者变富攻略 | 如何使用开源工具,科学记账?

LigaAI

程序人生 敏捷开发 复式记账 企业号 2 月 PK 榜 Beancount

Apipost全局参数和目录参数怎么用?

不想敲代码

接口文档 apipost API调试

软件测试/测试开发 | app自动化测试(Android)—参数化用例

测试人

软件测试 自动化测试 测试开发 appium app自动化测试

Apipost预执行脚本使用教程

徐天

程序员必备的数据库知识:数据存储结构

NineData

数据结构 数据集 数据存储 分布式链路 Radix Tree

【计算讲谈社】第十六讲|当我们在谈目标时,究竟在谈什么?

大咖说

2023年知名堡垒机厂商及价格简单说明

行云管家

网络安全 信息安全 数据安全 堡垒机

Apipost产品介绍

徐天

「钞能力养成指北」前传:开年变富,开发者如何迈出第一步?

LigaAI

敏捷开发 新年计划 复式记账 图论 企业号 2 月 PK 榜

DR Auto-Sync 的 ACID 恢复功能简介和长期断网应急处理方案

TiDB 社区干货传送门

管理与运维 数据库架构设计

TiDB 的数据加载性能调优方案

TiDB 社区干货传送门

性能调优 应用适配

ChatGPT3.5 !微软最新官宣整合OpenAI的14个产品细节,改变从视频会议Teams开始

B Impact

通过Jmeter对TiDB数据库进行压测

TiDB 社区干货传送门

监控 性能调优 实践案例 故障排查/诊断 安装 & 部署

Apipost如何自定义响应参数?

叶小柒

开源!MatrixBench:实时物联网场景的数据压测“兵法秘籍”

YMatrix 超融合数据库

开源 物联网 超融合数据库 YMatrix MatrixBench

Grafana组件升级和离线镜像源

TiDB 社区干货传送门

监控 版本升级

墨天轮《2022年中国数据库行业年度分析报告》正式发布,精彩抢先看

墨天轮

数据库 Serverless 云原生 国产数据库 HTAP

TDengine 荣获 2022 金猿奖“大数据产业最具投资价值企业”“大数据产业创新技术突破”

TDengine

数据库 tdengine 时序数据库

2023云原生安全值得关注的3个方向

HummerCloud

ebpf 云原生安全 SBOM

工厂年后开工:停机设备的维护和准备工作

PreMaint

设备健康管理 设备管理 设备预测性维护

【Nacos配置管理】一文带你搞懂Nacos配置管理模块

石臻臻的杂货铺

nacos

PingCAP 黄东旭万字长文剖析数据库发展新趋势:脱离应用开发者的数据库,不会成功

TiDB 社区干货传送门

数据库前沿趋势

TiDB Operator--K8S集群基础环境配置

TiDB 社区干货传送门

实践案例 集群管理 管理与运维 安装 & 部署 扩/缩容

用Apipost进行gRPC调试教程

不想敲代码

微服务 gRPC 接口调试

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