我看到了几个变种; ClojureCLR,LSharp,IronScheme,IronLisp等。这些中的任何一个是否都在积极维护和/或接近“成熟”,或者它们主要是实验还是灰尘收集者?哪个被认为是最成熟的框架,用于编译.Net dll并引用其他.Net dll,如果有的话?有没有与Visual Studio很好地集成至少一个“创建Lisp项目”功能?
答案 0 :(得分:14)
IronLisp已经死亡并被IronScheme取代,而IronScheme仍然是测试版。
L Sharp和ClojureCLR是相似的,他们遵循现代Lisp for CLR的相同想法(与IronScheme相反,后者试图在新平台上实现R6RS标准)。 ClojureCLR似乎比L Sharp更受欢迎,Java的Clojure社区正在快速成长,因此您可以在.NET应用程序中使用它的许多库。我知道ClojureCLR有一个VS2010 plugin可用。
我相信,ClojureCLR现在是最发达的,所以我敢打赌。另一方面,Clojure(以及ClojureCLR)仍然在变化,它的未来版本可能与当前状态有很大不同,这对于长期生产项目来说并不是很好。从这一点来看,实施旧的经过验证的R6RS的IronScheme更为可取。我不能说很多L#,但我猜它介于ClojureCLR和IronScheme之间。
因此,实际的决定取决于您的个人需求:稳定性,(潜在)项目的规模,当然还有语言特征 - 不要忘记了解所有三个方面。
答案 1 :(得分:0)
.NET有一个(非标准)Lisp编译器,重点是.NET互操作性:
http://www.meta-alternative.net/mbase.html
它是所有列出的内容中功能最丰富的,但它不断变化,并且仍处于测试阶段。
答案 2 :(得分:0)
不要忘记Bigloo,它是C和Java VM的着名Scheme编译器,最近添加了一个实验性的.NET字节码编译器。
答案 3 :(得分:0)
如果您只需要从Lisp调用.NET,并且您不需要创建DLL的 1 ,RDNZL可能适合您。
1 我不是说你不能用RDNZL和你的Lisp实现创建DLL,我只是没有任何理由尝试这样做。