如何在C#中返回IronScheme函数返回(Visual Studio)

时间:2015-06-10 05:44:59

标签: c# scheme ironscheme

我正在用C#(使用Visual Studio)制作一个使用IronScheme的程序,这是我的代码片段。

exp = "(car '('(1 2 3) 4 5 6))";
System.Console.WriteLine(exp.Eval());

基本上,我想获得该列表的第一个元素,即另一个列表(1 2 3)。我的问题是我不知道如何获得实际的号码列表。在这个例子中,我打印了Eval()的结果,打印出来:

IronScheme.Runtime.Cons

如果我将其转换为字符串,我会得到相同的结果。任何其他类型的演员/转换打印相同的东西

System.Console.WriteLine(exp.Eval().ToString()); 
// Also prints "IronScheme.Runtime.Cons"

如何获取该列表的值,如C#list List<>

1 个答案:

答案 0 :(得分:1)

Cons实施IEnumerable

您遇到的一个问题是已引用列表中的引用列表。我不确定这是否是你想要的,但我正在删除它的例子:

var exp = "(car '((1 2 3) 4 5 6))";
var result = exp.Eval<Cons>(); // eval and cast => (1 2 3)

var list = result.Cast<int>().ToList(); 

Protip :您可以使用Cons.PrettyPrint查看以更易阅读的格式展开的内容。