1

我知道它与这个 SO questionthis one相关,但我想知道,是否(以及如何)可以在运行时创建新的 F# 函数。

我的意思是在不显示的情况下使用 REPL。除了 CodeDOM 和 Reflection 或 Quotations 还有其他选择吗?

如果在 F# 中不可能,那么在任何其他 .Net 语言中是否可能?

4

1 回答 1

2

当然可以,这就是 DLR(动态语言运行时)的用途。IronPython、IronRuby 和其他与您描述的完全一样的动态语言使用它。DLR 只是一个库,因此您可以根据需要在 F# 中使用它。

另一种选择是使用 F# 的高阶函数来实现类似的功能——这将非常灵活,但最终会稍微慢一些,因为 .NET CLR 无法在优化方式上做太多(如果有的话)。

于 2012-08-20T14:17:48.030 回答