Получить текущий размер стека в FORTH

Как я могу получить количество элементов, находящихся в настоящее время в стеке в Forth?

Я спрашиваю об этом, потому что хочу сделать функцию, которая выводит все элементы стека, например:

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

Но теперь мне нужно вручную указать размер стека, когда я его вызываю.


person sashoalm    schedule 03.09.2013    source источник


Ответы (2)


Вы всегда можете узнать количество элементов в стеке с помощью функции DEPTH. Возвращаемое значение — это количество элементов в стеке до того, как число будет возвращено.

person Leo Chapiro    schedule 03.09.2013
comment
Теперь эта ссылка ведет на другой сайт. Доступна ли актуальная ссылка? - person Anderson Green; 25.03.2015
comment
@Anderson Green: Вы правы, ссылка сейчас недоступна. К сожалению, я не нашел обновленную ссылку :( - person Leo Chapiro; 26.03.2015

В большинстве систем FORTH есть команда .S, которая делает именно то, что вы хотите написать.

person vonbrand    schedule 05.07.2018
comment
слово .s показывает содержимое стека, а слово depth помещает длину стека на вершину стека. - person Alexandre Dumont; 10.04.2021