【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

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

关注

评论

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

Solr和Elasticsearch,搜索框架怎么选?

会踢球的程序源

Java

知你懂你,聪明得简直不像一台车,问界M5智驾版重磅升级鸿蒙3

Geek_2d6073

如何通过Java应用程序在PPT中创建SmartArt图形

在下毛毛雨

Java PowerPoint 添加艺术图形

升级企业数智化底座,构建数智连接全能力

用友BIP

技术大会 用友iuap 用友技术大会

海泰方圆受邀出席2023黄河观潮·信创与商用密码融合发展高峰研讨会

电子信息发烧客

chrome调试技巧(一)

知心宝贝

前端 后端 调试 三周年连更

这是你的云-云起实验室

六月的雨在InfoQ

开发者 实验室 三周年连更 云起实验室

苹果手机里面的udid怎么查出来

雪奈椰子

共享电动车生产厂家!共享电单车厂商

共享电单车厂家

共享电动车厂家 共享电单车厂商 智能电动车生产

FastAPI入门

Liam

程序员 开发工具 API FastApi API 开发

什么是企业数智化的创新加速器?

用友BIP

技术大会 用友iuap 用友BIP 用友技术大会

版本发布 | 九大功能优化,TDengine 3.0.4.0 稳定性、健壮性大幅提升

TDengine

tdengine 物联网 时序数据库

用友iuap平台一站式服务,助力央国企推进数智化转型

用友BIP

AutoCAD2024最新版介绍及autocad 2024系统要求

互联网搬砖工作者

Linux 这4个进程相关的命令,太好用!

wljslmz

三周年连更

ChatGPT们接踵而至,AI会彻底改变我们的工作方式吗?

引迈信息

人工智能 AI 低代码 ChatGPT JNPF

站群SEO是什么意思?站群SEO怎么做效果才好?

海拥(haiyong.site)

三周年连更

Zabbix5.0配置企业微信告警

A-刘晨阳

Linux zabbix 三周年连更

国内Google翻译失效的解决方法(MAC/WIN)

互联网搬砖工作者

2023年如何成为一名优秀的大前端Leader?

这我可不懂

低代码 JNPF

海泰方圆成功当选黑龙江省商用密码协会会长单位

电子信息发烧客

听说谛听闹退休?感知网络接班啦!

脑极体

感知网络

时隔两个多月,一起来看ChatGPT现况如何?

加入高科技仿生人

人工智能 AI 低代码 数字化

IT知识百科:什么是SSID?

wljslmz

三周年连更 ssid

浪潮海岳低代码平台inBuilder开源社区版正式发布

科技热闻

DLRover:云上自动扩缩容 DeepRec 分布式训练作业案例分享

AI Infra

程序员 AI 互联网 DLRover

企业全面数智化转型,国产替代成为安全保障

用友BIP

技术大会 用友iuap 数智化转型 用友BIP 用友技术大会

「云原生」Elasticsearch + Kibana on k8s 讲解与实战操作

会踢球的程序源

Java elasticsearch Kibana

NFTScan 与 Web3 Analytics 达成合作伙伴,双方在多链 NFT 数据方面展开合作

NFT Research

NFT 区块链、

接口文档设计避坑指南

程序员小毕

面试 程序人生 后端 架构师 java程序员

从入门到实战 | 尚硅谷Nifi视频教程发布

小谷哥

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