История изменений
Исправление quasimoto, (текущая версия) :
1. нарушает ФП
Не нарушает.
4. Как я понял, не нарушает ФП, но выглядит так, как будто это не ФП, а обычное императивное программирование(ИП).
С протаскиванием значений которые выглядят как состояния, то есть ты формулируешь вычисление в терминах чистых функций (State -> Result, NewState) они композиционно составляются, во всём стеке всегда можно читать этот общий для него State, потом весь стек запускается с начальным состоянием и выполняется (до конечного). 3 оптимизирует это прибивая «якобы» состояния к настоящим — конкретной памяти, оставляя возможность явно их вытаскивать сохраняя ссылочную прозрачность, 2 добавляет эффектов (вытаскивать или нет и будет это что-то ломать — на усмотрение, в 1 не ломает).
Исправление quasimoto, :
1. нарушает ФП
Не нарушает.
4. Как я понял, не нарушает ФП, но выглядит так, как будто это не ФП, а обычное императивное программирование(ИП).
С протаскиванием значений которые выглядят как состояния, то есть ты формулируешь вычисление в терминах чистых функций (State -> Result, NewState) они композиционно составляются, в всём стеке всегда можно читать этот общий для него State, потом весь стек запускается с начальным состоянием и выполняется (до конечного). 3 оптимизирует это прибивая «якобы» состояния к настоящим — конкретной памяти, оставляя возможность явно их вытаскивать сохраняя ссылочную прозрачность, 2 добавляет эффектов (вытаскивать или нет и будет это что-то ломать — на усмотрение, в 1 не ломает).
Исходная версия quasimoto, :
1. нарушает ФП
Не нарушает.
4. Как я понял, не нарушает ФП, но выглядит так, как будто это не ФП, а обычное императивное программирование(ИП).
С протаскиванием значений которые выглядят как состояния, то есть ты формулируешь вычисление в терминах чистых функций (State -> Result, NewState) они композиционно составляются, в всём стеке всегда можно читать этот общий для него State, потом весь стек запускается с начальным состоянием и выполняется (до конечного). 3 оптимизирует это прибивая «якобы» состояния к настоящим — конкретной памяти, оставляя возможность явно их вытаскивать сохраняя ссылочную прозрачность, 2 добавляет эффектов (вытаскивать или нет и будет это что-то ломать — на усмотрение).