Теперь опять положим в стэк 1 2, но вместо + введём [ + ] и нажмём Enter. Оно кладётся в стэк! В стэке 1 2 [ + ]. Вводим call, нажимаем Enter, функция срабатывает, в стэке 3.
Ну в принципе это не что-то, изобретённое лишь в Factor, это древность, которая появилась вроде даже раньше широко известного в узких кругах эзотерического языка FALSE, но да, многие конкатенативные языки этого не имеют, так что это ему конечно плюс.
С другой стороны я ещё не видел конкатенативного языка с типизацией как у хаскеля (ну хотя бы чистого Haskell 2010), хотя можно на самом хаскеле устроить DSL, который был бы таким языком, и типоклассы можно, и ещё было бы полезно к конкатенативному языку по-моему прикручивать эффекты, например «читает переменную такую-то». Я как-то смотрел на систему типов Factor и мне вроде не понравилось.
(Кстати секрет: в конкатенативном языке с достаточно мощной типизацией нет нужды во время выполнения иметь ни одного стека.)
-- Вт дек 17, 2019 15:51:59 --В Форте не нужно никаких обёрток, всё на уровне языка. Если в Факторе это не так — жаль.
Не всякий конкатенативный язык должен придерживаться всех максим форта.
Иначе это будет вариант форта, которых кстати развелось немало.