Начал вникать в модную хрень. Выбрал конечно же хаскель. Ну и, не будучи дурачком от природы, а будучи от природы авторитетным пацаном, чиста, экспертом во всех областях человеческой и нечеловеческой деятельности, решил пошерстить про него по разным форумам, докам, и другим хреням, поспрашать за него у авторитетных чиста людей, поинтересоваться, чиста, че там, как. И не пожалел.
Я хочу, короче, сказать, что авторы хаскеля и ваще ФП — чиста недоумки. По их мнению, функция может быть чистой, чиста в хаскеле они, типа, чиста чистыми функциями оперируют, а в других, чиста пацанских языках типо, они нечистые. Я ща поясню, кароче, почему они лохи.
Вся эта хрень идет чиста от непонимания такой фигни: функция всегда чиста как котоффские яйца. Если она оперирует муттабельными данными, она от этого грязной не становиться. Смотрите псевдокодик:
a=1
f=fun(x)x
f(a) ---> выхлоп 1
a=2
f(a) ---> выхлоп 2
Казалось бы, типа императивщина, грязь, да пацаны? Не хрена подобного. Эта хрень - кажущаяся. Это происходит, чиста от того, что вычисления у нас здеся, типо, энергичные. Помните присказку: явное лучше неявного? Сказка впереди. Что же тут реально, семантически, происходит? f принимает аргумент a и возвращает тоже a. Что взял, то и отдал. a пришло, и оно же ушло. Че из себя представляет а - это нашу функцию нии*т. Тут кажется, чиста, шо она возвращает разную хрень, потому что прогер не видит, что она реально берет и что возвращает, он видит не сам символ, а его значение, чиста. Функция соответствует определению того, что при любом одинаковом входе, она ВСЕГДА возвращает чиста одинаковый результат — a.
То шо ФП хорошо анализируется конпелятором, ето нормальных пацанов не волнует. Тут речь о том, шоб фэпешники не держали пацанов и экспертов чисто за лохов.
Так что, пацаны, я сам врубился в тему, и вас предупреждаю, что это чиста развод.
Перемещено leave из development