【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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:001559
用户头像

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

关注

评论

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

持续集成背后的思考

夏兮。

ci 方法论 持续集成 jenkins

消极自由 与 积极自由

mtfelix

28天写作

知识回顾:抽象类与抽象方法

喵叔

28天写作 12月日更

如何促进用户首次下单?

石云升

AARRR 产品思维 28天写作 产品增长 12月日更

Golang的通道基础(一)

liuzhen007

28天写作 Go 语言 12月日更

目标加个零(28/28)

赵新龙

28天写作

架构实战营 第 4 期 模块三作业

架构实战营 模块三 构架 「架构实战营」

Elasticsearch 可搜索快照技术原理及最佳实践

腾讯云大数据

Elastic Search

资料分享|kafka学习推荐书籍

Kafka中文社区

都2022年了,这个20篇Linux内存管理的期刊论文,你读了吗?

奔着腾讯去

Linux Kenel 内存映射 内存池 内存页

LabVIEW机器视觉系统图像畸变、校准和矫正(基础篇—3)

不脱发的程序猿

机器视觉 图像处理 LabVIEW 系统图像畸变、校准和矫正

Golang的通道入门(二)

liuzhen007

go语言 28天写作 12月日更

Flink 实践教程-进阶(5):排序(乱序调整)

腾讯云大数据

流计算 Oceanus

从翻硬币游戏看敏捷开发

华为云开发者联盟

敏捷 敏捷开发 软件开发 团队 开发

Kubernetes 与 OpenYurt 无缝转换(命令式)

阿里巴巴云原生

阿里云 容器 云原生 openyurt

HarmonyOS(鸿蒙)——启动流程

李子捌

鸿蒙 28天写作 21天挑战 12月日更

SRE02|管中窥豹,微服务可用性监控之道

方勇(gopher)

微服务 SRE 微服务治理 构架

我的2021之感谢有你们(上篇)

坚果

年终总结 28天写作 12月日更 盘点2021

Kubernetes中的亲和性与反亲和性

xcbeyond

kubernete 28天写作 12月日更

SRE实战(03)|Clickhouse在好大夫服务治理中应用

方勇(gopher)

大数据 APM Clickhouse 构架

流计算 Oceanus | 巧用 Flink 构建高性能 ClickHouse 实时数仓

腾讯云大数据

flink Clickhouse 流计算 Oceanus

27《重学JAVA》--反射

杨鹏Geek

Java 25 周年 28天写作 12月日更

【CSS 学习总结】第八篇 - CSS 布局-居中布局-垂直居中布局

Brave

CSS 12月日更

如何监控测量你的代码

耳东@Erdong

监控 Prometheus

Go 软件设计之道

宇宙之一粟

Go 语言 12月日更

政法重点关注人员管控系统开发,跨部门大数据办案平台建设

a13823115807

怎么组织一场活动

圣迪

活动 SOP

银行兴起数字极简风:“智能手机App恐惧症”终于有救了

CECBC

价值

搬砖的周狮傅

价值观

28《重学JAVA》--注解

杨鹏Geek

Java25周年 28天写作 12月日更

年终加薪

张老蔫

28天写作

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