从.NET/C#调用LISP或SCHEME

Joh*_*hnP 7 lisp scheme

在我现有的软件中,我使用自制的decission制作树进行遗传编程的实现,该树能够在一些布尔数据中应用基本逻辑运算符(AND OR NOT),这些数据以数组的形式提供给它.我使用的平台是带有SQLServer后端的.NET/C#.寻找提高我的遗传程序性能的方法我得出结论,我几乎需要功能语言附带的所有附加功能,我相信Scheme或更小的LISP是最好的解决方案,除非我想实现像COND,IF,比较算子等我自己扩展了现有的实现.

我对论坛的问题是,是否有任何有效的方法从.NET应用程序调用Scheme(或LISP)以一些数组形式传回数据.如果这是不可能的,那么你最好只是咬紧牙关并从头开始实施它,或者我应该寻找其他方法,例如使用文本文件进行通信?

Jör*_*tag 5

有一个符合R6RS实施方案为DLR称为IronScheme.由于IronScheme使用DLR,它可以使用标准化的DLR嵌入API嵌入到任何.NET应用程序中,其方式与嵌入IronRuby或IronPython的方式完全相同:

dynamic Scheme = new SchemeEnvironment();
var list = Scheme.list;
var map = Scheme.map;
// and so on
Run Code Online (Sandbox Code Playgroud)

完整的片段可以在IronScheme的作者leppie的博客文章中找到.它还展示了如何将C#lambda传递给Scheme高阶函数和其他很酷的东西.


suk*_*kru 0

为什么不看看 F#?

( www.fsharp.net )

它基本上是 .Net 中 OCaml 的改编。

或者您始终可以使用IronScheme,但我认为它还不够成熟。