在我现有的软件中,我使用自制的decission制作树进行遗传编程的实现,该树能够在一些布尔数据中应用基本逻辑运算符(AND OR NOT),这些数据以数组的形式提供给它.我使用的平台是带有SQLServer后端的.NET/C#.寻找提高我的遗传程序性能的方法我得出结论,我几乎需要功能语言附带的所有附加功能,我相信Scheme或更小的LISP是最好的解决方案,除非我想实现像COND,IF,比较算子等我自己扩展了现有的实现.
我对论坛的问题是,是否有任何有效的方法从.NET应用程序调用Scheme(或LISP)以一些数组形式传回数据.如果这是不可能的,那么你最好只是咬紧牙关并从头开始实施它,或者我应该寻找其他方法,例如使用文本文件进行通信?
有一个符合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高阶函数和其他很酷的东西.