我试图构建一个接受命名空间名称、键列表和值列表的函数。但是,该函数无法读取命名空间的键和值。
例如:
q) makens:{[ns,keylist,valuelist] temp_ns: x.keylist.valuelist; set[.ns;temp_ns]}
q) makens:[`hello;`age`gender;`10 "M"]
我希望我的输出是:
q) .hello
| ::
age | `10
gender | "M"
相反,命名空间不起作用,当我在最后使用 set 时,它不会读取 .ns
作为输入,即:
q) makens:[`hello;`age`gender;`10 "M"]
q) .hello
'.hello
[3] .hello
^
q) .ns
`10`M
答案 0 :(得分:3)
您可以使用:
q)makens:{[ns;keylist;valuelist](` sv `,ns) upsert ((`,keylist)!(::),valuelist)};
q)makens[`hello;`age`gender;`10,"M"]
`.hello
q).hello
| ::
age | `10
gender| "M"