【发布时间】:2012-05-01 12:38:53
【问题描述】:
我正在将几个基于 OCaml 的模块转换为 F#,并从 OCaml 格式模块运行到 OCaml 打印格式化函数open_box and close_box。在阅读了打印盒的概念后,它是有道理的,但似乎需要大量的幕后工作才能实现。
是否有功能等效的 F# 模块?
如果没有,无需转换部分 OCaml 格式模块,有哪些快速简单的替换功能?
编辑
Jack 有一个版本作为 OCaml 格式的一部分,位于 FSharpx.Compatibility.OCaml.Format.Format.fs 我没有测试过,但它是我目前找到的最完整的版本。
【问题讨论】:
-
你试过在F#下编译吗?无需修改即可直接编译。
-
@OnorioCatenacci 格式模块需要其他模块和转换才能与 F# 一起使用。我花了大约 15 分钟的时间,但它正在变成一连串的错误,我不想追究,因为我不知道有多少存在。
-
@OnorioCatenacci 现在很少编译没有修改,
Format模块需要数百次更改。索引数组使用 OCaml 中的xs.(i)和 F# 中的xs.[i]并带有类型注释。原始代码使用 OCaml 的流,在 F# 中没有等效的流。频道相当于文本阅读器和作者,但需要一些调整。甚至printf的工作方式也不同! -
@JonHarrop 我认为它总是值得快速尝试——不会伤害任何东西,并且会让人们大致了解将涉及多少工作。
-
@GuyCoder 我将其转换为 F#
Seq。不过,我实际上可能正在考虑错误的代码库。我最近为一个客户翻译了一些其他的 OCaml 代码到 F#...