sim*_*mon 26

我最近没有看过它,但至少在过去,在CLR上完全实现常见的lisp存在一些问题,如果发生变化我会有点意外.问题出现了像浮点数的处理,其中.net/clr有办法做到这一点a)巧妙地不正确b)不同意ANSI标准的常见lisp,但c)不允许任何解决方法.还有其他类似的问题.这个东西很繁琐,可能不太重要,但意味着你不太可能在CLR上看到ANSI CL.

还有更大的问题,例如常见的lisp具有更强大的对象系统,因此您无法在运行时将其1:1映射到对象(没有MI,对于一个).这没关系,但是让你有一种内部/外部的方法,这是常见的运行时试图避免的...

你是否会看到一个常见的lisp-ish变种在它上面运行是一个不同的故事,但我现在不知道(不是我看起来很难)

  • Hamish,CLOS有多个派遣以及多重继承.与方法之前/之后的事情一起,以及类和实例的动态(运行时)更新是可能的.因此,调用解析很复杂,而且你无法在.NET(或Java,或c ++等等)中重现它. (9认同)
  • @jfm3:是的,您可以做很多事情,但它不会消除 CLOS 和运行时对象系统之间的阻抗不匹配。作为一个更通用的系统,CLOS 仍然必须将内容编组并作为对象从运行时中取出。您可以使用 MOP 使其适合居住,但不完全是原生的。 (2认同)
  • Lisp的对象系统如何比.Net更强大? (2认同)

Mik*_*son 17

如果可以反过来,你可以通过Edi Weitz的RDNZL从你最喜欢的Lisp访问.Net .

  • 现在它随着[Bike](https://github.com/Lovesan/bike)而重生。 (2认同)

Mic*_*ent 14

不,但您可能想要考虑在DLR上运行的IronScheme.

来自网站:

IronScheme旨在成为基于Microsoft DLR的符合R6RS的Scheme实现.

IronScheme将完整改写IronLisp,其中包含开发IronLisp时学到的经验教训.

  • IronScheme 的作者是这里的用户:http://stackoverflow.com/users/15541/leppie (2认同)

Mic*_*ent 11

从2008年的2010年重新考虑这个问题,你现在可能想在CLR上考虑Clojure.这不是Common Lisp,但是如果你是从那个方向来的话,那将是相当容易学习的.与CLR的互操作非常简单,它每天都需要更多的用户,并解决其他几个重要的主题,如并发.可能值得投入一些时间.这里有更多CLR特定的Clojure信息.


wil*_*urd 7

L Sharp .NET

  • 这不是常见的lisp.是另一种方言 (2认同)

小智 6

适用于.NET的完整常见lisp http://code.google.com/p/uabcl/