在FORTH中获取当前堆栈大小

6

我该如何在Forth中获取当前堆栈中元素的数量?

我问这个问题是因为我想制作一个函数来打印出堆栈中的所有元素,例如:

: pop_all 0 do . loop ;
1 5 10 4 5
5 pop_all

但现在当我调用它时,需要手动指定堆栈大小。

2个回答

10

您总是可以通过函数DEPTH找到堆栈上的项目数。返回的值是在返回数字之前堆栈上的项目数。


这个链接现在指向另一个网站了。是否有最新的链接可用? - Anderson Green
@Anderson Green:你是对的,链接现在不可用。不幸的是,我没有找到更新后的链接 :( - Leo Chapiro
有没有一个等效的命令用于返回堆栈? - undefined

1
大多数FORTH系统都有一个名为.S的命令,它可以完全满足您想要编写的功能。

.s 显示堆栈内容,而 depth 将堆栈长度放在堆栈顶部。 - Alexandre Dumont

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接