我知道它与this SO question和this one有关,但我想知道,是否(以及如何)可以在运行时创建新的F#函数。
我的意思是使用REPL而不显示它。除了CodeDOM和Reflection或Quotations之外还有其他选择吗?
如果在F#中无法实现,是否可以使用任何其他.Net语言?
答案 0 :(得分:1)
当然可以,这就是DLR(动态语言运行时)的用途。它由IronPython,IronRuby和其他动态语言使用,它们完全按照您的描述工作。 DLR只是一个库,因此如果需要,您可以在F#中使用它。
另一种选择是使用F#的高阶函数实现类似的功能 - 这将非常灵活,但最终有点慢,因为.NET CLR不能做很多事情(如果有的话) )以优化的方式。