LINUX.ORG.RU

История изменений

Исправление den73, (текущая версия) :

Ну везде можно написать ф-цию которая зависит только от входных данных.

Ты же говоришь «говнять нельзя», а твой ответ как раз в стиле «говнять». Правильная реализация чистоты, это когда ты пишешь в коде «эта функция должна быть чистой». Дальше ты пишешь определение функции. И если она не чистая, то она не компилируется. Это минимум, который компилятор языка должен предоставлять, если он хочет называться функциональным. И минимум, который должен быть в спецификации языка. Иначе да, получается, что вообще нет смысла в слове «функциональный язык». В Хаскеле, допустим, это звучит примерно так: «если модуль прямо или косвенно не импортирует IO, то он чистый». Не уверен, что это так уж круто, но более-менее сойдёт.

В CL это никак не звучит. Нет никакого инструмента, чтобы нечистая функция не скомпилировалась, кроме рук.

Исходная версия den73, :

Ну везде можно написать ф-цию которая зависит только от входных данных.

Ты же говоришь «говнять нельзя», а твой ответ как раз в стиле «говнять». Правильная реализация чистоты, это когда ты пишешь в коде «эта функция должна быть чистой». Дальше ты пишешь определение функции. И если она не чистая, то она не компилируется. Это минимум, который компилятор языка должен предоставлять, если он хочет называться функциональным. И минимум, который должен быть в спецификации языка. Иначе да, получается, что вообще нет смысла в слове «функциональный». В Хаскеле, допустим, это звучит примерно так: «если модуль прямо или косвенно не импортирует IO, то он чистый». Не уверен, что это так уж круто, но более-менее сойдёт.

В CL это никак не звучит. Нет никакого инструмента, чтобы нечистая функция не скомпилировалась, кроме рук.