创建包含kdb/q中带有空格的符号的表时出现错误类型错误

创建包含kdb/q中带有空格的符号的表时出现错误类型错误,kdb,Kdb,我试图在kdb中创建一个符号表,其中表的值包含空格。我有 tab:([colOne:`$"value 1"`$"value 2"]colTwo:`$"value 3"`$"value 4") 目前,但这只是返回 ERROR: `type (wrong type) 我所遵循的应该是: tab:([colOne:`$("value 1";"value 2")]colTwo:`$("value 3";"value 4")) 请记住,q中的求值是从左到右的: colTwo:`$"value 3"`

我试图在kdb中创建一个符号表,其中表的值包含空格。我有

tab:([colOne:`$"value 1"`$"value 2"]colTwo:`$"value 3"`$"value 4")
目前,但这只是返回

ERROR: `type (wrong type)
我所遵循的

应该是:

tab:([colOne:`$("value 1";"value 2")]colTwo:`$("value 3";"value 4"))
请记住,q中的求值是从左到右的:

colTwo:`$"value 3"`$"value 4"
`$"value 4" will be evaluated to symbol
然后,它将尝试将此符号应用于左侧的内容:

"value 3" `$"value 4"

这将为您提供
'类型

您使用空格部分表示sym是正确的,但在创建表格时,列将列表作为输入

tab:([colOne:`a`b]colTwo:`c`d)
可以,因为
`a`b
是一个列表,但是当使用带有空格的符号时,您需要将它们括在
()
中以创建一个列表

尽管谢尔盖的答案是一个更好的方法,但下面的方法也会起作用

tab:([colOne:(`$"value 1";`$"value 2")]colTwo:(`$"value 3";`$"value 4"))

你能补充解释吗?有用的解释,谢谢。我理解
`type
的原因,所以我很好奇尝试
(`$'value 3')`$'value 4',但这会给出一个错误,即
`value 3`。对此的解释是什么?它尝试在左侧查找名为symbol的函数,并在右侧调用参数。由于您没有定义名为“value 3”的函数,它告诉您这一点<代码>a:{show 123}`a`b