我有一个相当复杂的LispWorks公共Lisp模块,它通过RDNZL位于一些.NET模块之上。
我已经发现,我需要向其他一些.NET应用程序公开它的一些功能,而且我不确定在不用C#重写模块的情况下最好(最短)的方法来解决这个问题。我知道有一些CLR实现,但大多数似乎没有维护或不完整,并且有许多东西不能在Scheme中进行琐碎的重写。
是否有任何与RDNZL支持的相反的工具(.NET -> Common )?我可以使用RDNZL来传递一个接受.NET对象的DLL吗?
我编辑这篇文章是为了包含一些对Lisp感兴趣的选项,这些选项可能知道它们是否在Windows上,以及它们为什么不能完全满足上面的要求(或者像您的用户一样,我没有充分表达我的需求:)。
发布于 2010-04-23 12:49:10
“我需要向其他一些.NET应用程序公开它的一些功能”
下面的内容并不是您想要的,但是如果您想要跳出一段时间的话,我认为使用消息传递可能是最简单的(这完全是基于上面引用的声明)。类似于ZeroMQ,它为Common和.Net都提供了绑定。那么,问题不在于如何重写模块以使其与.Net兼容,而是如何将消息传递集成到模块中,以供独立的.Net应用程序使用。对话双方都必须在消息格式上达成一致,但在我看来,这比你在帖子中考虑的路线要容易得多。
如果您需要创建多个应用程序,那么可能需要一个pub/sub体系结构。
发布于 2010-04-23 16:30:57
您可能会发现LSharp很感兴趣,LSharp也有铁方案,还有克洛诺斯,它自称是Lisp方言。
我会花一点时间研究将代码移植到F#上有多困难,因为langage对Lisp的限制和不同之处。在Lisp中当然有相当多的构造,我会发现很难将它们优雅地按到F#中。
https://stackoverflow.com/questions/2692464
复制相似问题