写点什么

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

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

关注

评论

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

tomcat 使用apr

zack

tomcat

计算机网络基础(七)---网络层-ICMP协议

书旅

计算机网络 网络协议 网络层

itchat替代品,追妹子神器,个人微信给多个好友(群)发消息,定时提醒妹子喝水

Java_若依框架教程

技术 后端 itchat 微信消息 定时提醒

一口气说出 4 种分布式一致性 Session 实现方式,面试杠杠的~

楼下小黑哥

nginx redis 分布式 session

凡架构必拆分,分则有度

菜根老谭

微服务 康威定律 架构思维 分治思维

MySQL库表设计小技巧

Simon

MySQL 数据库设计

压测脚本

LEAF

最新:英特尔断供浪潮系内部供应链调整,现已恢复供货

Geek_116789

波士顿动力狗 SPOT 权威购买指北

早睡蟒

Python 人工智能 学习 波士顿动力 机械狗

Flink 最佳搭档:开发部署平台 Zeppelin 的自白

Apache Flink

金融科技的碎片化思考(上)

曲水流觞TechRill

金融科技 FinTech

智能标注原理揭秘,一文读懂人工智能如何解决标注难题

百度大脑

人工智能 百度 学习 AI 百度大脑

有趣的“第二个系统”

架构精进之路

提升认知 研发体系

数据库周刊33丨5大国产数据库中标中国移动;Oracle7月CPU安全预警;腾讯Tbase新版本发布;“2020数据技术嘉年华”有奖话题遴选;阿里云技术面试题;APEX 实现数据库自动巡检;MYSQL OCP题库……

墨天轮

MySQL 数据库 oracle 阿里云 面试

Java 面向对象知识整理

多选参数

Java 编程

架构师第七周总结

傻傻的帅

架构师

实操案例:字符串哈希表操作

华为云开发者联盟

程序员 编程语言 C语言 哈希表 字符串

报告|50%CRM品牌陷入竞争旋涡,破圈迫在眉睫

人称T客

什么?不写代码也能做功能开发!- RUOYI教程

Java_若依框架教程

Java 技术 后端 开发 框架

存储性能加速引擎之预读

焱融科技

Linux sds 焱融科技 分布式存储 预读

来自前端童鞋对后端的吐槽@#$%^

Java小咖秀

程序员 程序人生 大前端

k8s极简史:K8s多集群技术发展的历史、现状与未来

华为云开发者联盟

Kubernetes 容器 云原生 华为云

Oracle JDK7 bug 发现、分析与解决实战

vivo互联网技术

Flink 1.11 Unaligned Checkpoint 解析

Apache Flink

flink

企业架构框架之DoDAF

冯文辉

企业架构

「架构师训练营」第 7周作业 - 性能测试

森林

「架构师训练营」第 7 周作业 - 总结

森林

Newbe.Claptrap 框架入门,第二步 —— 简单业务,清空购物车

newbe36524

容器 微服务 Reactive .net core ASP.NET Core

架构师都该懂的 CAP 定理

闻人

架构 分布式 架构师

Flask 的 url 处理器

Leetao

Python flask Web框架

网传Intel断供浪潮,英特尔:供应链调整

Geek_116789

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