我正在使用 Gforth 的解释器指令(非 ANS 标准)控制结构,如手册第5.13.4 节解释器指令中所述。我基本上想使用循环词来创建一个包含文字的动态大小的词。例如,我提出了这个定义:
: foo
[ 10 ] [FOR]
1
[NEXT]
;
然而,这会在之后产生地址对齐异常[FOR]
(是的,我知道您根本不应该在 Forth 中使用 for 循环。这只是一个简单的示例)。
最后事实证明,您必须将循环编写为单行代码,以确保它们的正确执行。这样做
: foo [ 10 [FOR] ] 1 [ [NEXT] ] ;
而是按预期工作。运行see foo
产量:
: foo
1 1 1 1 1 1 1 1 1 1 1 ; ok
这正是我想要的。
有没有办法在单词定义中获得新的行?我想写的单词要复杂得多,对于演示文稿,我需要更好的格式。