Привет, объясните приницп пожалуйста.
Пишу я на ноде планировщик задачь, ипользую fp-ts, которая слизана с haskell.
И вот есть алгоритм
1) Задача попадает в очередь (массив) и порождает event 'taskAdded'
2) По массиву идет какой-то handler, берет из него функцию, выполнет и посылает event 'ready'
3) Берется новая задача из массива
Все event и прочие вещи обернуты в монаду IO и тут вроде все кононично, а вот как избежать мутации массива, который хранит очередь я не понимаю.
В хаскеле до таких вещей я еще не дошел, так что объясните принцип, пожалуйста