LINUX.ORG.RU

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

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

Ещё не понял как делать (глобальное) состояние в ФП (сохраняя ссылочную прозрачность)? Есть разные способы :) Ещё раз — State (= StateT s Identity, так же StateT s IO и т.п.); ST, ST[U]Array, STRef и т.п.; IO, IO[U]Array, IORef (+ Chan, MVar, QSem[N], + STM — TArray, TBQueue, TQueue, TChan, TMVar, TSem, TVar, ...) и т.п. (типа vector); просто передача мутабельных ссылок на эти вещи между функциями, top-level <- на конструкторе для них или трансформер с ними над IO.

Исправление quasimoto, :

Ещё не понял как делать (глобальное) состояние в ФП (сохраняя ссылочную прозрачность)? Есть разные способы :) Ещё раз — State (= StateT s Identity, так же StateT s IO и т.п.); ST, ST[U]Array, STRef и т.п.; IO, IO[U]Array, IORef (+ Chan, MVar, QSem[[N]], + STM — TArray, TBQueue, TQueue, TChan, TMVar, TSem, TVar, ...) и т.п. (типа vector); просто передача мутабельных ссылок на эти вещи между функциями, top-level <- на конструкторе для них или трансформер с ними над IO.

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

Ещё не понял как делать (глобальное) состояние в ФП (сохраняя ссылочную прозрачность)? Есть разные способы :) Ещё раз — State (= StateT s Identity, так же StateT s IO и т.п.); ST, STArray, STRef и т.п.; IO, IOArray, IORef (+ Chan, MVar, QSem[N], + STM — TArray, TBQueue, TQueue, TChan, TMVar, TSem, TVar, ...) и т.п. (типа vector); просто передача мутабельных ссылок на эти вещи между функциями, top-level <- на конструкторе для них или трансформер с ними над IO.