发现lisp-family语言.NET实现

时间:2012-01-26 09:22:47

标签: .net scheme clr clojureclr ironscheme

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

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

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

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

2 个答案:

答案 0 :(得分:3)

我已经在评论中回答了VS.

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

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

作为.NET生产商,IronScheme仍然缺乏一点。例如,无法创建泛型方法或类。类型字段(在记录上)最近才被引入,甚至有点限制(不支持相互递归字段类型定义)。

示例上面的意思是什么:

class Foo { Bar bar; } 
class Bar { Foo foo; }

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

随着去年年底(2011年)的一些发展,我已经能够在IronScheme中编写代码,该代码的运行速度比C#快(甚至更快)。代码的IL输出与F#紧密匹配(纯粹巧合)。我甚至不再费心对抗IronPython / IronRuby了。 :)

如果需要,请随意提出更多问题。

此外,可能会针对IronScheme的Codeplex讨论板进行一些内容丰富的讨论。我通常很快回应。

答案 1 :(得分:1)

VsClojure最近有很多活动,应该很快就会有更新,以解决您遇到的很多问题。此外,关于打开项目时遇到的特定问题,如果首先启动Visual Studio 然后打开解决方案/项目,它应该可以正常工作。它只是从shell无法运行。以下是一些可能有助于您入门的博客:

http://clojureclr.blogspot.com/
http://www.myclojureadventure.com/
http://clrviaclojure.blogspot.com/