LINUX.ORG.RU

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

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

Ты полностью игнорируешь суть деления языков на функциональные и остальные.

Верное и понятное в общем-то замечаиние про функции как объекты первого класса у тебя свелось к «нипанятна», «API ниапридилили».

На пример про композицию ты в ответ буровишь что то невнятное про чистоту. Хотя чистота в общем-то отдельное свойство (языка, хотя и неотъемлемое св-ство теории лямбда-исчисления). Например, в окамле нет монады IO как в хаскеле, но кажется никто не скажет что окамль - не функциональный. Окамль при этом поддерживает объектно-ориентированную парадигму и императивную. Собственно они так и говорят в туториале - три парадигмы.

Т.е. я не говорю, что категоризировать так как ты делаешь - нельзя. Более того, в теории, как ты верно заметил, чистота одно из важнейших свойств (лямбда исчисления), которое позволяет рассуждать о свойствах программы.

Но на практике языки делят так как делят. И это оправдано, потому что когда ты начинаешь плясать с бубном ради композиции, это смешно. А чистота потихоньку в некотором смысле была везде. Ну везде можно написать ф-цию которая зависит только от входных данных. Но такой полной чистоты как в хаскеле, кажется, не было до хаскеля. Но языки фукнциональные были.

Вообще наверное наиболее правильно сказать что функциональный язык это тот у которого модель вычислений в некотором смысле соотвествует лямбда-исчислению. Т.е. вместо , гм, некоторого абстрактного «исполнителя» который выполняет алгоритм, как у обычных языков, в функциональном языке есть понятие «редукция терма». А «исполнителя» нет как такового.

Но опять , будет ли в этом делении смысл? Пока что как мне кажется наиболее удачное деление проходит по «функциям как объектам первого порядка», что в общем то тоже свойство лямбда-исчисления. И это позволяет языку «отображать и отображаться» в лямбда-термы без плясок с бубном (в том смысле что программу на языке можно выразить в виде какого то лямбда-терма и любой лямбда-терм можно лекго выразить в языке).

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

Ты полностью игнорируешь суть деления языков на функциональные и остальные.

Верное и понятное в общем-то замечаиние про функции как объекты первого класса у тебя свелось к «нипанятна», «API ниапридилили».

На пример про композицию ты в ответ буровишь что то невнятное про чистоту. Хотя чистота в общем-то отдельное свойство. Например, в окамле нет монады IO как в хаскеле, но кажется никто не скажет что окамль - не функциональный. Окамль при этом поддерживает объектно-ориентированную парадигму и императивную. Собственно они так и говорят в туториале - три парадигмы.

Т.е. я не говорю, что категоризировать так как ты делаешь - нельзя. Более того, в теории, как ты верно заметил, чистота одно из важнейших свойств (лямбда исчисления), которое позволяет рассуждать о свойствах программы.

Но на практике языки делят так как делят. И это оправдано, потому что когда ты начинаешь плясать с бубном ради композиции, это смешно. А чистота потихоньку в некотором смысле была везде. Ну везде можно написать ф-цию которая зависит только от входных данных. Но такой полной чистоты как в хаскеле, кажется, не было до хаскеля. Но языки фукнциональные были.

Вообще наверное наиболее правильно сказать что функциональный язык это тот у которого модель вычислений в некотором смысле соотвествует лямбда-исчислению. Т.е. вместо , гм, некоторого абстрактного «исполнителя» который выполняет алгоритм, как у обычных языков, в функциональном языке есть понятие «редукция терма». А «исполнителя» нет как такового.

Но опять , будет ли в этом делении смысл? Пока что как мне кажется наиболее удачное деление проходит по «функциям как объектам первого порядка», что в общем то тоже свойство лямбда-исчисления. И это позволяет языку «отображать и отображаться» в лямбда-термы без плясок с бубном (в том смысле что программу на языке можно выразить в виде какого то лямбда-терма и любой лямбда-терм можно лекго выразить в языке).