Имбирь - твой спиритический овощ. Войти !bnw Сегодня Клубы
Есть у меня устройство, которое может находится в одном из нескольких конечных состояний. Для разных состояний устройства есть разные способы отправить его в другое состояние. В принципе можно описать все эти способы функциями над монадой State, а сами состояния изображать конструкторами алгебраического типа. Но тогда в рантайме придётся перепроверять а в правильном ли мы состоянии для вызова этой функции. Кроме того из самой функции будет не очевидно когда её можно вызывать. Можно закодировать состояния разными типами, а машину состояний суммой этих типов, а способы кодировать специальной монадой параметризованной типом состояния в котором можно её использовать. Но тогда нужен типобезопасный case, который позволяет при удачном сопоставление выполнять вычисления только внутри нужной монады. Кроме того типов станет ещё больше. Я недавно столкнулся с тем, что у меня есть типы параметризованные восьмью переменными и нужно ещё!
Рекомендовали: @l29ah
#9A383V / @ndtimofeev / 3386 дней назад

> Но тогда нужен типобезопасный case, который позволяет при удачном сопоставление выполнять вычисления только внутри нужной монады. Data.Dynamic?
#9A383V/58D / @l29ah / 3386 дней назад
@l29ah Можно и так, кстати. Правда тогда будет нельзя проверить описаны ли в коде все возможные состояния.
#9A383V/MFY / @ndtimofeev --> #9A383V/58D / 3386 дней назад
Выкинь хаскель и реши эту задачу за минуту.
#9A383V/HIC / @komar / 3386 дней назад
@komar Если выкинуть хаскель придётся обмазываться настоящей потокобезопасностью, поскольку у меня ко-ко-конкурентность.
#9A383V/USL / @ndtimofeev --> #9A383V/HIC / 3386 дней назад
@komar Причём когда конкурентность обсирается у меня происходит разлив растворителей превращающих пластики в говно, перегрев реакционной массы и всякие такие вещи.
#9A383V/IBM / @ndtimofeev --> #9A383V/HIC / 3386 дней назад
@ndtimofeev Хуерентность.
#9A383V/64Y / @komar --> #9A383V/USL / 3386 дней назад
@komar Сорь. Конкурентность нужна только тем кто не в состоянии запрограммировать конечный автомат. Я вот не в состоянии.
#9A383V/UQ4 / @ndtimofeev --> #9A383V/64Y / 3386 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.