Редактирование: ?DUP
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 20: | Строка 20: | ||
Слово ?DUP подвергается критике, т.к. оставляет на [[Стек данных|стеке]] разное количество элементов, что является плохим стилем программирования. Чаще всего ?DUP используется для компенсации того, что [[IF]] снимает со [[Стек данных|стека]] свой аргумент. | Слово ?DUP подвергается критике, т.к. оставляет на [[Стек данных|стеке]] разное количество элементов, что является плохим стилем программирования. Чаще всего ?DUP используется для компенсации того, что [[IF]] снимает со [[Стек данных|стека]] свой аргумент. | ||
В {{colorForth}} слово ?DUP нет, т.к. [[IF]] там неразрушающий. В cf2019 слово ?DUP используется для оптимизации макросов и аналогично [[DUP]] за одним исключением — будучи использованным после [[DROP]] , вместо | В {{colorForth}} слово ?DUP нет, т.к. [[IF]] там неразрушающий. В cf2019 слово ?DUP используется для оптимизации макросов и аналогично [[DUP]] за одним исключением — будучи использованным после [[DROP]] , вместо [[DUP]] «отменяет» компиляцию этого [[DROP]] . | ||
=== ?DUP в предыдущем стандарте Forth-83 (англ.) === | === ?DUP в предыдущем стандарте Forth-83 (англ.) === |