如何在数组中指定第 8 个命名空间?

How do you specify the 8th namespaces in an array?

8th 使用命名空间而不是词汇表。每个命名空间都有自己的整数表示。

ok> ns:a . cr ns:n . cr
4
2

因此,2 用于数字命名空间,4 用于数组。

我想构建一个包含命名空间的数组,然后我可以将其放置在 TOS(堆栈顶部)。

但是,如果我只写这个

ok> [ ns:a , ns:n ]
Exception: invalid JSON array: at line 1 char 3 in ....: cr (G:;;; +000004c2)
Exception: can't find: :a: at line 1 char 6 in (null): cr (G:??? +00000029)
Exception: can't find: ,: at line 1 char 8 in (null): cr (G:??? +00000029)
Exception: can't find: ]: at line 1 char 15 in (null): n (G:??? +00000029)

您可以将函数地址存储在数组中

[ ' ns:n , ' ns:a ]

并通过获取数组值并执行它来访问这些值

0 a:@ w:exec . cr
2
ok>

你也可以使用匿名函数

[ ( ns:a ) , ( ns:m ) ]

我是 8th 的开发者。 ' ns:a 的解决方案并不是您真正想要的,因为它将 word 放在数组中而不是那个词的值会 return.

您可以使用反引号完成您要查找的内容: [ ` ns:a ` ]

反引号将文本提供给下一个反引号 eval 并将值(无论它是什么)放入您正在创建的 JSON 中(它不是仅限于 JSON,这是一个通用构造)。