我看到有几个变种,包括ClojureCLR、LSharp、IronScheme、IronLisp等。这些中有哪些是处于积极维护和/或接近“成熟”阶段的,或者它们大多数是实验或灰尘收集器? 如果有的话,哪一个被认为是编译为.Net dll并引用其他.Net dll的最成熟框架? 是否有任何一款可以像“创建Lisp项目”的功能那样与Visual Studio良好集成?
我看到有几个变种,包括ClojureCLR、LSharp、IronScheme、IronLisp等。这些中有哪些是处于积极维护和/或接近“成熟”阶段的,或者它们大多数是实验或灰尘收集器? 如果有的话,哪一个被认为是编译为.Net dll并引用其他.Net dll的最成熟框架? 是否有任何一款可以像“创建Lisp项目”的功能那样与Visual Studio良好集成?
IronLisp已经不再更新,被IronScheme取代,但IronScheme仍处于beta版。
L#和ClojureCLR类似,它们都遵循将现代Lisp引入CLR的想法(与IronScheme相反,后者尝试在新平台上实现R6RS标准)。ClojureCLR似乎比L#更受欢迎,Java的Clojure社区正在快速增长,因此您可以在.NET应用程序中使用其中许多库。
我知道对于ClojureCLR,有一个名为VS2010插件的工具可用。
我认为,ClojureCLR现在是最密集开发的,所以我会押注于它。但是,Clojure(因此包括ClojureCLR)仍然在发展变化,未来版本可能与当前状态大相径庭,这对于长期生产项目来说并不好。从这个角度来看,实现旧的验证R6RS的IronScheme更可取。我无法说太多关于L#,但我猜它介于ClojureCLR和IronScheme之间。
因此,最终决策取决于您的个人需求:稳定性、(潜在)项目规模以及语言特性——别忘了学习这三种语言的特点。
有一个(非标准)Lisp编译器适用于.NET,重点在于.NET互操作性:
http://www.meta-alternative.net/mbase.html
它是所有列出的中最功能丰富的,但它不断变化,仍处于测试阶段。
如果你只需要从Lisp调用.NET,并且不需要创建DLL1,RDNZL可能适合你。
1我并不是说你不能使用RDNZL和你的Lisp实现来创建DLL,只是我没有任何理由尝试去做它。