Получить текущий размер стека в FORTH
Как я могу получить количество элементов, которые в настоящее время хранятся в стеке в Forth?
Я спрашиваю об этом, потому что я хочу сделать функцию, которая печатает все элементы стека, что-то вроде:
: pop_all 0 do . loop ;
1 5 10 4 5
5 pop_all
Но теперь мне нужно вручную указать размер стека при его вызове.
2 ответа
Решение
Вы всегда можете найти количество предметов в стеке с помощью функции DEPTH
, Возвращаемое значение - это количество элементов в стеке до того, как число будет возвращено.
Большинство систем FORTH имеют .S
Команда, которая делает именно то, что вы хотите написать.