Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有没有办法通过 Forth 中的索引访问堆栈的元素,而不弹出它上面的所有元素?
例如,如果我将数字 1 到 1000 推入堆栈,我如何获得第 500 个元素?
500 PICK
...将在 Forth79 中将元素从堆栈向下复制 500 级到堆栈的顶部。
如果您使用的 Forth 没有 PICK,您可以将其定义为
: PICK ?DUP IF SWAP >R 1- RECURSE R> SWAP EXIT THEN DUP ;
(当然,迭代版本也是可能的。)