q - 列表的字符串表示

q - string representation of list

我有一个列表

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/

谢谢!

我认为您要查找的命令是 .Q.s.Q.s1,其中 return kdb 纯文本代码:

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

需要注意的是,这些函数的输出受限于\c