Kdb 如何构建投影的解析树?

Kdb 如何构建投影的解析树?,kdb,k,Kdb,K,我想以某种方式将解析树保存到文本格式文件中,然后将其带回q 但是解析树可能包含投影,比如说+[;1]2。我应该如何处理这些文件树并正确地保存/加载它?在以下示例中,我尝试直接使用:时出错: parse"+[;1]2" (parse"+[;1]2")[0] / (+; ::; 1) null(parse"+[;1]2")[0;1] / 0b, something strange null(::) / 1b eval((+;::;1);2)

我想以某种方式将解析树保存到文本格式文件中,然后将其带回
q

但是解析树可能包含投影,比如说
+[;1]2
。我应该如何处理这些文件树并正确地保存/加载它?在以下示例中,我尝试直接使用
时出错:

parse"+[;1]2"
(parse"+[;1]2")[0] / (+; ::; 1)
null(parse"+[;1]2")[0;1] / 0b, something strange
null(::) / 1b
eval((+;::;1);2) / 3
我认为解决这个问题的一种方法是用空字符串替换所有的
,然后应用
eval/

(eval/)((+;;1);2) / ok
但也有其他情况需要
,例如:

m:(1 2;3 4)
parse ".[m;(::;1)]1"
eval ((.;`m;(enlist;::;1));1) / 4
eval ((.;`m;(enlist;;1));1) / error: 'type
那么,对于这两种情况,我如何以文本格式正确地保存(/load)解析树呢


我想要些奇怪的东西吗?是否有可能在
q
中获得一对一的抽象语法树程序表示?

您偶然发现的是Andrey Kozyrev称之为“魔法值”的东西,请参见此处:


但是,是的,你试图实现的是奇怪的,当然不是常见的用法。你到底希望从中获得什么?

你无意中发现的是Andrey Kozyrev所谓的“神奇价值”,请参见:

但是,是的,你试图实现的是奇怪的,当然不是常见的用法。你到底希望从中得到什么