C#与IronScheme交互

来源:转载

C#与IronScheme交互,有需要的朋友可以参考下。

IronScheme为C#版本的Scheme编译器,通过它可以实现scheme与C#之间的相互调用,scheme编写为库,C#直接调用scheme库函数,这样就可以动态加载scheme代码,完成调用。Scheme也可以调用C#中的库函数或自定义类,具体方法可见官方文档。下面讨论的是C#调用scheme函数。

1.编写scheme库函数

;Define a function write-ln(library (rules test)(import (rnrs) (ironscheme clr));Define a function write-ln(define (write-ln fmt . args) (clr-static-call System.Console WriteLine (clr-cast System.String fmt) (clr-cast System.Object[] (list->vector args)))) )
2.通过C#来调用该库函数

var r = "(import (rules test))".Eval();var r1 = "(write-ln {0} {1} {2})".Eval("{0}-{1}","It's ","me!");

这样就完成了调用,当然可以传递给scheme自定义的对象,这样就可以完成更加复杂的逻辑处理。

版权声明:本文为博主原创文章,未经博主允许不得转载。



分享给朋友:
您可能感兴趣的文章:
随机阅读: