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

  • 本文关键字:命名空间 数组 forth 8th
  • 更新时间 :
  • 英文 :


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

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

您可以使用反引号完成所需的操作:[ ' ns:a ' ]

反引号将

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

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

[ ' ns:n , ' ns:a ]

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

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

您还可以使用匿名函数

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

相关内容

  • 没有找到相关文章

最新更新