2015-06-10 61 views
2

我正在使用C#程序(使用Visual Studio),它採用IronScheme IronScheme函數返回,這是一個代碼片段我有。如何獲得在C#(Visual Studio中)

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

基本上,我想獲得該名單,這是另一個列表(1 2 3)的第一要素。我的問題是我不知道如何獲得實際的號碼列表。在這個例子中,我打印​​的結果,打印:

IronScheme.Runtime.Cons 

如果我將其轉換爲字符串,我得到了相同的結果。和任何其他類型轉換/轉換打印同樣的事情

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

我如何獲得該名單的值,如C#列表List<>

回答

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(); 

普羅蒂普:您可以使用Cons.PrettyPrint看到一個更可讀的格式擴展內容。

+1

哇直接從IronScheme的創造者的答案,謝謝:)! –

相關問題