История изменений
Исправление hateyoufeel, (текущая версия) :
У тебя там с типами бардак
Я с телефона писал :3
Я тут подготовил кусочек кода.
Ну да, я так и думал, что ты ApplicativeDo возьмёшь. Тут как бы без вариантов.
Правда, начинаются лулзы, когда одно значение может зависеть от другого. Например, страна пользователя и формат номера телефона.
Если написать для Validate корректный инстанс монады, то валидатор будет завершаться после первой же ошибки.
Не, не будет. Там всё ещё Applicative пойдёт, если у компилятора нет причин вставить Monad. Сам проверь:
instance Semigroup a => Monad (Validate a) where
Valid v >>= f = f v
Invalid e >>= _ = Invalid e
$ ./ado
Right (MkUser {userSex = Male, userWants = Female})
Left ["invalid value: nbaaaq++","invalid value: monkey"]
Исправление hateyoufeel, :
У тебя там с типами бардак
Я с телефона писал :3
Я тут подготовил кусочек кода.
Ну да, я так и думал, что ты ApplicativeDo возьмёшь. Тут как бы без вариантов.
Правда, начинаются лулзы, когда одно значение может зависеть от другого. Например, страна пользователя и формат номера телефона.
Если написать для Validate корректный инстанс монады, то валидатор будет завершаться после первой же ошибки.
Не, не будет. Там всё ещё Applicative пойдёт, если у компилятора нет причин вставить Monad.
Исправление hateyoufeel, :
У тебя там с типами бардак
Я с телефона писал :3
Я тут подготовил кусочек кода.
Ну да, я так и думал, что ты ApplicativeDo возьмёшь. Тут как бы без вариантов.
Правда, начинаются лулзы, когда одно значение может зависеть от другого. Например, страна пользователя и формат номера телефона.
Исправление hateyoufeel, :
У тебя там с типами бардак
Я с телефона писал :3
Я тут подготовил кусочек кода.
Ну да, я так и думал, что ты ApplicativeDo возьмёшь. Тут как бы без вариантов.
Правда, начинаются лулзы, когда одно значение может зависеть от другого. Например, страна пользователя и формат номера телефона. Ну да ладно, ApplicativeDo вроде умеет сам такое разруливать.
Исходная версия hateyoufeel, :
У тебя там с типами бардак
Я с телефона писал :3
Я тут подготовил кусочек кода.
Ну да, я так и думал, что ты ApplicativeDo возьмёшь. Тут как бы без вариантов.