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

Fable:将 F#转译成 JavaScript

  • 2016-08-25
  • 本文字数:726 字

    阅读完需:约 2 分钟

Fable 是一个从 F#到 JavaScript 的转译器。它可以将 F#脚本或者整个 F#项目转换成 JavaScript。Fable 通过一个命令行界面运行,让开发人员既可以编译一个.fsx 脚本,也可以编译一整个项目。它作为一个 npm 包进行分发。

Fable 支持大部分 F#核心库和少量.NET BCL。它支持所有的基本类型,但有一些例外情况。一个值得注意的例外是 async。Async 计算表达式可以正常运行,但RunSynchronously不可用。

用户可以通过创建插件扩展Fable。通常,Fable 插件用于在编译过程中替换外部库调用。用户通过实现 IReplacePlugin接口及其仅有的方法TryReplace创建插件。下面是使用插件替换System.Random的基本代码:

复制代码
type RandomPlugin() =
interface IReplacePlugin with
member x.TryReplace com (info: Fable.ApplyInfo) =
match info.ownerFullName with
| "System.Random" ->
match info.methodName with
| ".ctor" -> failwith "TODO"
| "Next" -> failwith "TODO"
| _ -> None
| _ -> None

插件可以用于处理更复杂的情况,比如转换测试框架。目前, NUnit 支持就是通过一个插件将 NUnit 测试转换成 Mocha 测试。

用户还可以使用 Fable 通过 React Native创建移动应用 React Native 可以将 React 应用程序编译成 Android 和 iOS 应用。 Fable 插件提供了到 React Native 的绑定。一定要注意,通过 React Native 支持移动应用是一个试验性特性,会经常变化。

Fable 是一个开源项目,托管在GitHub 上。Fable 官方网站提供了文档代码示例。举一个在成熟项目中使用Fable 的例子。 Ionide 是一个用于在 VsCode 和 Atom 中编辑 F#的插件,它自 2.0 版本开始就使用了 Fable。

查看英文原文 Transcompiling F# to JavaScript with Fable

2016-08-25 19:001595
用户头像

发布了 1008 篇内容, 共 374.1 次阅读, 收获喜欢 340 次。

关注

评论

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

数仓分层架构如何设计?

奔向架构师

数据库 数据仓库 数据架构

一份283页pdf,五大核心内容,熬夜“啃完”,竟拿下了阿里offer

Java 程序员 架构 面试

深度 | 字节跳动微服务架构体系演进

字节跳动 微服务 云原生 Service Mesh 服务网格 火山引擎

双指针法

后台服务器开发

c++ 双指针 LeetCode

字节跳动亿级视频处理系统高可用架构实践

火山引擎开发者社区

架构 后端 音视频

体验为先,博睿数据打造以用户会话为中心的监测体系

博睿数据

博睿数据 数据链DNA DEM

ROS CDK | 云上资源自动化部署新模式

郭旭东

阿里云 ROS 基础设施即代码 IaC

从零开始学习3D可视化之拾取

ThingJS数字孪生引擎

大前端 可视化 3D 3D可视化 数字孪生

通用时区:你应该知道的数据库时区知识

华为云开发者联盟

数据库 时区 GaussDB(DWS) 通用时区 夏令时

微警务系统搭建,智慧派出所平台建设解决方案

Rust从0到1-泛型-生命周期

rust 泛型 生命周期 generic lifetimes

剪视频一点都不难,多款超实用剪辑软件全方位评测!

懒得勤快

短视频 视频剪辑 视频制作

GitHub 近两万 Star,无需编码,可一键生成前后端代码,这个开源项目有点强!

程序员生活志

Flink Job 概览

Alex🐒

flink 翻译 flink1.13

【小技巧】Google浏览器设置之Tab折叠分组

恒生LIGHT云社区

推荐 浏览器书签 谷歌 工具分享

自从有了这个工具,一键代码迁移不在话下

华为云开发者联盟

代码迁移 鲲鹏DevKit 汇编翻译 汇编语言 Kunpeng

【签约计划】百位签约创作者名单公布

InfoQ写作社区官方

签约计划

2021年,想要成为年薪百万的Java架构师需要掌握哪些技术?

Java架构师迁哥

HTAP | MySQL 到 ClickHouse 的高速公路

RadonDB

MySQL Clickhouse Xenon

新版发布|ShardingSphere 5.0.0-beta 来了!

SphereEx

ShardingSphere

墨奇,以“一手之力” 证明你就是你

E科讯

为什么大家都在用WebRTC?

anyRTC开发者

音视频 WebRTC 语音通话 视频通讯

问题定位 | XtraBackup 8.0 数据重建避坑事件始末

RadonDB

MySQL Xenon XtraBackup

架构实战营 模块六:学习总结

👈

架构实战营

低代码助力企业生产管理8大招式,你学废(hui)了吗?

优秀

低代码

开发5年!三面字节,成功拿到27k*17offer,原来也没那么难

Java 程序员 架构 面试

高寿命NVMe SSD应用场景探讨

怀瑾握瑜

区块链 数据库 云计算 SSD 虚拟货币

架构实战营 模块六:课后作业

👈

架构实战营

工作年限、成长路线、进阶技术。怎样才能成为架构师?

Linux服务器开发

Linux服务器开发 Linux后台开发 软件架构师 服务器架构师 C++架构师

网络为本,博睿数据NPMD用20%的投入实现80%的功能

博睿数据

博睿数据 数据链DNA NPMD

【Linux】使用 systemd 管理 frp 服务

赖猫

Linux 后端

Fable:将F#转译成JavaScript_.NET_Pierre-Luc Maheu_InfoQ精选文章