Joy

Алексей Десятник: "Чистый функциональный язык, основанный на комбинаторной логике. Внешне похож на Форт: используется обратная польская запись и стек. Пока что находится в стадии развития, хотя уже имеет неплохую теоретическую основу. Есть даже прототипная реализация. Основное преимущество перед другими языками - линейная запись без переменных, что должно по идее резко облегчить автоматизацию написания, проверки и оптимизации программ. Помимо недоразвитости, есть еще один серьезный недостаток: как и у Форта, у Джоя страдает читабельность. Однако с теоретической точки зрения язык очень интересный."

Reuben Thomas: "The mainstream imperative languages have a state of associations between assignable variables and their current values. The values are changed by assignments during the run of the program. These languages also have an environment of formal / actual parameter associations that are set up by calls of defined functions or procedures. Purely functional languages have no state. But the mainstream functional languages are based on the lambda caclculus, and hence they have an environment. The purely functional language Joy has no state and no environment. The imperative language Forth has both."

Сергей Зефиров: Должен не согласиться с вышесказанным (обоими господами). Во-первых, Joy имеет среду (environment), только неявную, состоящую из единственного элемента - стека. Если бы он не имел таковой, то выражения были бы перестановочны и приводили бы к одному и тому же эффекту: "1 drop" == "drop 1". К тому же, большинство реализаций ФЯ основывается на редукции графов в том или ином ее виде (Haskell и Clean), а комбинаторы графов не имеют переменных. Во-вторых, для более солидной теоретической основы, с моей точки зрения, необходимо наличие системы типов. Все известные мне работы, посвященные строгой типизации стековых языков, приводят к отсутствию единственного наиболее общего типа (principal type). Это означает, что невинно выглядящая строка "a b c d" может получить, например, шестнадцать различных корректных типов.

Valid XHTML 1.0! Valid CSS!
Page Execution took real: 0.903 seconds