- Сообщения
- 15 795
- Реакции
- 3 454
Специально размещаю тему здесь, т.к. ожидаю некоторого флуда.
В общем момент такой...
Я несколько знаком с двумя принципиально разными языками программирования. Forth и Lisp.
Несколько, это значит, что с мощью Forth я реально столкнулся, пробовал программировать и не смог (из за идеологии), но логику понять могу.
Lisp (и Лого, как версию Lisp) изучал только идеологически.
Lisp, это язык функциональной парадигмы. Основанный на списках.
Forth уж не знаю в какую парадигму отнести, но его определяет лёгкость определения операторов (в прочем как и Лисп), и обратная польская запись, т.е. для того, что сложить 10 и 20 нужно написать 10 20 +
А чтобы сложить 10 + 20 + 30 нужно написать 10 20 30 + +
Существуют Forth машины (в том числе специализированные процессоры) ориентированные на стековую математику, т.е. операции над стеком более выгодны, чем операции над регистрами.
Существуют Lisp машины (и Lisp процессоры) ориентированные на работу со списком.
Не ту не другую логику никогда понять не мог. После обычной императивной она мне кажется алогичной.
PostScript я определяю как совокупность этих двух логик.
С одной стороны откровенно стековая организация с польской обратной записью и стэком. С другой откровенно выраженная Lisp подобная логика.
Однако идеологически они противопоставимы.
Это как программировать на Лого (Lisp подобный язык) используя императивные (C, Pascal, Basic) парадигмы. Можно, но через ж...
[в прочем это и практикуется в школе при обучении Лого]
Но не того, не другого я просто не понимаю. Это бред какой-то.
Может быть тот, кто знает PostScript как язык программирования подскажет, как к такому маразму подойти?
Как Вы сами разобрались в гибриде списков и обратной записи?
Как научились читать PostScript код? Может быть, как удалось сломав себя написать пару строчек на этом языке?
P.S. Я как-то пару недель потратил на составление функции на TeX. Там по ходу с языком ещё хуже... Функция заняла 3 строки кода, но была довольно революционна.
В общем момент такой...
Я несколько знаком с двумя принципиально разными языками программирования. Forth и Lisp.
Несколько, это значит, что с мощью Forth я реально столкнулся, пробовал программировать и не смог (из за идеологии), но логику понять могу.
Lisp (и Лого, как версию Lisp) изучал только идеологически.
Lisp, это язык функциональной парадигмы. Основанный на списках.
Forth уж не знаю в какую парадигму отнести, но его определяет лёгкость определения операторов (в прочем как и Лисп), и обратная польская запись, т.е. для того, что сложить 10 и 20 нужно написать 10 20 +
А чтобы сложить 10 + 20 + 30 нужно написать 10 20 30 + +
Существуют Forth машины (в том числе специализированные процессоры) ориентированные на стековую математику, т.е. операции над стеком более выгодны, чем операции над регистрами.
Существуют Lisp машины (и Lisp процессоры) ориентированные на работу со списком.
Не ту не другую логику никогда понять не мог. После обычной императивной она мне кажется алогичной.
PostScript я определяю как совокупность этих двух логик.
С одной стороны откровенно стековая организация с польской обратной записью и стэком. С другой откровенно выраженная Lisp подобная логика.
Однако идеологически они противопоставимы.
Это как программировать на Лого (Lisp подобный язык) используя императивные (C, Pascal, Basic) парадигмы. Можно, но через ж...
[в прочем это и практикуется в школе при обучении Лого]
Но не того, не другого я просто не понимаю. Это бред какой-то.
Может быть тот, кто знает PostScript как язык программирования подскажет, как к такому маразму подойти?
Как Вы сами разобрались в гибриде списков и обратной записи?
Как научились читать PostScript код? Может быть, как удалось сломав себя написать пару строчек на этом языке?
P.S. Я как-то пару недель потратил на составление функции на TeX. Там по ходу с языком ещё хуже... Функция заняла 3 строки кода, но была довольно революционна.