3

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)
4

2 回答 2

5

我是8th的开发者。' ns:a的解决方案并不是您真正想要的,因为这会将单词放入数组中,而不是单词将返回的值。

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

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

于 2016-05-21T17:51:19.637 回答
2

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

[ ' ns:n , ' ns:a ]

并通过抓取一个数组值并执行它来访问这些值

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

您还可以使用匿名函数

[ ( ns:a ) , ( ns:m ) ]
于 2016-05-21T07:52:00.750 回答