q - 列表的字符串表示

时间:2018-01-23 10:32:21

标签: kdb q-lang

我有一个清单

filter:((in;`name;`betsy`robert`tom);(>;`age;43));

我希望从中获得以下列表表示

"((in;`name;`betsy`robert`tom);(>;`age;43))"

到目前为止我发现的是:

flatten:{[alist]
    $[(count alist)~count raze alist;:alist;:flatten raze alist];
    };
";" sv string raze flatten[filter]
/ gives: "in;name;betsy;robert;tom;>;age;43"

丢失了filter列表中的嵌套列表。

信用到:https://lifeisalist.wordpress.com/2009/07/10/p07-flatten-a-nested-list-structure/

谢谢!

1 个答案:

答案 0 :(得分:2)

我认为您要查找的命令是.Q.s.Q.s1,它以纯文本形式返回kdb代码:

q).Q.s1 filter
"((in;`name;`betsy`robert`tom);(>;`age;43))"

应该注意,这些功能的输出受\c的限制。