发现lisp-family语言.NET实现

cnd*_*cnd 5 .net clr scheme ironscheme clojureclr

所以基本上我不是在这里比较Scheme和Clojure,我想比较一下实现.有:

Clojure-clr,即使使用Visual Studio扩展也可以安装,但我仍然有点用这种方式使用它.创建并保存此类项目后,无法再次打开它...

而IronScheme,就我所知,还没有针对IronScheme的VS插件,但也许它得到了更好的.NET支持,我从未使用它,也无法了解它.

那么这两个(或者甚至还有其他类似lisp语法的东西)得到了更好的CLR支持?

lep*_*pie 3

关于VS的问题我已经在评论里回答过了。

就 .NET 互操作性而言,IronScheme 可能更好,因为它是用 .NET 设计和编写的,并且可以自由重用现有 .NET 类型。

作为 .NET 使用者,IronScheme 为大多数 .NET 功能(例如泛型等)提供了出色的支持。

就作为.NET生产者而言,IronScheme还有些欠缺。例如,无法创建通用方法或类。类型化字段(记录上)最近才被引入,即使这样也有一点限制(不支持相互递归字段类型定义)。

例如上面的意思:

class Foo { Bar bar; } 
class Bar { Foo foo; }
Run Code Online (Sandbox Code Playgroud)

生产这样的东西目前是不可能的,但在某种程度上是可行的。

随着去年年底(2011 年)的一些进展,我已经可以在 IronScheme 中编写与 C# 一样快(甚至更快)的代码。代码的方法 IL 输出与 F# 的输出非常匹配(纯属巧合)。我什至不再费心与 IronPython/IronRuby 进行对抗。:)

如果需要,请随时询问更多信息。

此外,IronScheme 的 Codeplex 讨论板上可能会有一些信息丰富的讨论。我通常回复得很快。