我遇到了“引用”这个词,我试图找出一些实际使用它的例子。为每个代码表达式使用 AST 的能力听起来很棒,但如何在现实生活中使用它呢?

有谁知道这样的例子?

最佳答案

我认为引用在 F# 和 Nemerle 中有完全不同的用途。在 F# 中,您不使用引号来扩展 F# 语言本身,而是使用它们来获取一些用标准 F# 编写的程序的 AST(代码的数据表示)。

在 F# 中,这是通过在 <@ ..F# code.. @> 中包装一段代码或通过向函数添加特殊属性来完成的:

[<ReflectedDefinition>]
let foo () =
  // body of a function (standard F# code)

Robert 已经提到了这种机制的一些用途 - 您可以获取代码并将 F# 转换为 SQL to query database ,但还有其他几种用途。例如,您可以:
  • 将 F# 代码转换为 run on GPU
  • 将 F# 代码转换为 JavaScript using WebSharper
  • 关于c# - 报价实际用途,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7529496/

    10-11 07:27