История изменений
Исправление praseodim, (текущая версия) :
Что значит какая тебе разница? Есть понятия, одни понятия строятся на других понятиях (например, одно из требований чистоты функции - это отсутствие сайд эффектов) и если ты значение одного из понятий меняешь, то значит ломаешь зависящие от него понятия. Ты тут такой приходишь и говоришь «нет, всё фигня, у меня своё понимание». Ну молодец, у тебя своё определение, оно отличается от общепринятого.
Что не так с чистотой, если какие-то значения возвращаются по ссылке в аргументах? Тут единственное что может попортить чистоту, это если один и тот же аргумент используется и для передачи и для возврата значения. Если переменные разные (с ключевым словом out в современных паскалях или C#) - то в чем проблема с чистотой?
Если тебе так нужен аргумент из практики: я тебе уже говорил про композицию функций. С выходными параметрами ты ломаешь композицию.
Ее просто не очень красиво записывать становится.
Исходная версия praseodim, :
Что значит какая тебе разница? Есть понятия, одни понятия строятся на других понятиях (например, одно из требований чистоты функции - это отсутствие сайд эффектов) и если ты значение одного из понятий меняешь, то значит ломаешь зависящие от него понятия. Ты тут такой приходишь и говоришь «нет, всё фигня, у меня своё понимание». Ну молодец, у тебя своё определение, оно отличается от общепринятого.
Что не так с чистотой, если какие-то значения возвращаются по ссылке в аргументах? Тут единственное что может попортить чистоту, это если один и тот же аргумент используется и для передачи и для возврата значения. Если переменные разные (с ключевым словом out в современных паскалях) - то в чем проблема с чистотой?
Если тебе так нужен аргумент из практики: я тебе уже говорил про композицию функций. С выходными параметрами ты ломаешь композицию.
Ее просто не очень красиво записывать становится.