Начальный курс программирования на языке Форт

         

OVER (ЧЕРЕЗ)


Теперь допустим, что кто-то попросил вас вычислить выражение а * (а + b)

при следующем содержимом стека: ( a b — )

Вы скажете, что для этого потребуется новая операция со стеком, так как вам нужно два экземпляра а, и а должно находиться под b. OVER и есть та самая «новая» операция. OVER создает еще один экземпляр а, который «перепрыгивает», как при игре в чехарду, через b:

Теперь исходное выражение а * (а + b)

может быть легко записано в виде OVER + *

При этом происходит следующее: 

Прежде чем записывать выражения на Форте, их нужно разложить на множители. Например, вычислить выражение а2 + ab

с помощью Форта, применяя только описанные выше средства, довольно сложно (если вообще возможно) до тех пор, пока вы не разложите это выражение на множители, т. е. не приведете его к виду а * (а + b)

А такое выражение вы уже умеете вычислять



Содержание раздела