在 Gforth 中执行无限循环时遇到问题
Trouble executing indefinite loops in Gforth
在 Gforth 中表示输入的正确样式是什么?
while (2 > 1) {1 + 1}
以我目前从网上的资源了解,应该是:
: loop begin 2 @ 1 > while 1 1 + repeat
然而,当我尝试用 Gforth 解释这个时,我得到一个错误:
expected dest, do-dest or scope
: >>>loop<<< begin 2 @ 1 > while 1 1 + repeat
您发布的代码存在四个问题:
- 您将
loop
重新定义为其他内容。也许更好地命名它。
- 我没有看到
;
来结束冒号定义。
- 您将
@
用于不是地址的内容。只需放下 @
。 2 1 >
将 return 为真。
1 1 +
将结果压入堆栈,但您不使用它。这样栈就会溢出。
我建议这样做:
: infinite begin 2 1 > while 1 1 + drop repeat ;
这几乎就是 ruvim 在评论中发布的内容。
在 Gforth 中表示输入的正确样式是什么?
while (2 > 1) {1 + 1}
以我目前从网上的资源了解,应该是:
: loop begin 2 @ 1 > while 1 1 + repeat
然而,当我尝试用 Gforth 解释这个时,我得到一个错误:
expected dest, do-dest or scope
: >>>loop<<< begin 2 @ 1 > while 1 1 + repeat
您发布的代码存在四个问题:
- 您将
loop
重新定义为其他内容。也许更好地命名它。 - 我没有看到
;
来结束冒号定义。 - 您将
@
用于不是地址的内容。只需放下@
。2 1 >
将 return 为真。 1 1 +
将结果压入堆栈,但您不使用它。这样栈就会溢出。
我建议这样做:
: infinite begin 2 1 > while 1 1 + drop repeat ;
这几乎就是 ruvim 在评论中发布的内容。