мл протек в питон (3.11) и жаву (19?). МЛ доказал жизнеспособность и состоятельность.
Монадки — пока нет, и я лично в них не верю
Алгебраические - это эффекты первого порядка, где эффект-выражения не могут обрабатывать другие эффект-выражения data State s a where Put :: s -> State s () Get :: State s s Modify :: (s -> s) -> State s () Неалгебраика - это например catch, который принимает блок кода и ловит из него эксепшоны: (параметр m тут это "вся остальная монада") data Error e m a where Throw :: e -> Error e m a Catch :: m a -> (e -> m a) -> Error e m a
А трансформеры монад например это не алгебраические эффекты уже получается
Трансформеры монад никак не коммутируют.
https://arxiv.org/abs/1807.05923
Чуть более конкретная и оттого более понятная работа, чем по ссылке выше
Обсуждают сегодня