gpt4 book ai didi

f# - 将 OCaml 转换为 F# : Converting OCaml quotation add and quotation expander to F#

转载 作者:行者123 更新时间:2023-12-04 20:19:37 25 4
gpt4 key购买 nike

我正在将几个基于 OCaml 的模块转换为 F#,并运行到 OCaml ''Quotation.add'' 编译器指令以获取引号扩展器。

A quotation expander is a function written in OCaml. A call to the Camlp4 library function ''Quotation.add'' adds the quotation expander.



Camlp4 - Tutorial, Ch. 3

在 F# 书籍、F# 站点、Google 和此处搜索引号扩展器和“Quotation.add”编译器指令后,我得到的答案是否定的。

有人可以确认 F# 不支持 OCaml ''Quotation.add'' 编译器指令的概念或 OCaml 引号扩展器的概念。

编辑

注意:我刚刚了解到Camlp4是OCaml的pretprocessor-pretty-printer,当我问这个问题时,我以为它是一个单独的OCaml库;现在它是有道理的。

最佳答案

你是对的 - camlp4 库不适用于 F#,所以恐怕你需要使用另一种方法在 F# 中重新实现所需的功能。

通常,您可以从 F# 中使用一些相关技术(但如果不了解具体问题的更多信息,很难判断其中任何一种技术是否对您有用):

  • F# Quotations允许您操作 F# 代码,但编译能力有限(很好,即将 F# 转换为 SQL、JavaScript 或 GPU)
  • F# CodeDom (来自 F# PowerPack)允许您生成代码并使用 F# 编译器对其进行编译,但您可以将代码生成为文本或使用 .NET 面向对象的样式。
  • T4 Templating是一个 .NET 模板机制,虽然上次我检查过,它不支持 F#(但我认为 Mono 版本可能工作)
  • F# Type Providers (感谢 kvb)可以通过 F# 插件为编译器生成类型。这可以处理您使用 camplp4 生成某些类型以供以后使用的情况(即从较短的规范中),但如果您需要生成一些代码
  • ,它们的用途有限

    关于f# - 将 OCaml 转换为 F# : Converting OCaml quotation add and quotation expander to F#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10422985/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com