定义的命名空间中的字典分配失败

Dictionary assignment in defined namespace failing

首先我显示我当前的名称空间,然后定义一个新名称空间,然后我尝试创建一个字典。

为什么第一次赋值失败,而在未定义的命名空间中赋值成功?

q)key `
`q`Q`h`o
q).foo
'.foo
q).foo:()!()
q).foo.bar:`a`b`c!1 2 3
'.foo.bar
q).foobar.bar:`a`b`c!1 2 3
q).foobar.bar
a| 1
b| 2
c| 3

您需要像这样初始化命名空间:

q).foo:enlist[`]!enlist[::]
q).foo
| ::
q)
q).foo.bar:`a`b`c!1 2 3
q)
q).foo.bar
a| 1
b| 2
c| 3

在第二种情况下,q 正在有效地为您做这件事

来自code.kx:

A context is actually a sorted dictionary whose domain is a list of symbols with the names of the entities defined in the context

如果您将代码更改为以下内容,它将按预期工作:

q).foo:(`symbol$())!()
q).foo.bar:`a`b`c!1 2 3
q).foo.bar
a| 1
b| 2
c| 3