Anatolii
я пока на эту магию с типами не смотрел еще, для меня это пока "магия" :(
Anatolii
а по поводу ошибки не подскажешь что может быть?
Anatolii
почему body не возвращается на UI
Anatolii
там конечно как-то странно оно
Anatolii
у них body это массив байт по сути
Anatolii
хотелось бы тоже как-то типизированно сделать
Anatolii
чтобы я дал свой типчик в ToJSON
Anatolii
*c ToJSON
Vladimir
:>
melvin
:3
Alexander
отдаются байты. т.к. браузер отдает байты
Alexander
ты делаешь свой типчик и инстансы с ToContentType FromContentType (не помню как имеено)
Alexander
которые покажут как переводить тип в байтики и обратно
Anatolii
ну да, я понимаю что можно сделать типы, просто TypeSafety теряется:)
Anatolii
ну и я строк упочему-то не смогу венуть
Anatolii
вернее не смог
Anatolii
а вот возвращаемый формат который я указываю в роуте как-то влияет на ошибку?
Alexander
не понимаю почему теряется
Alexander
в браузер могут уходить только байт
Alexander
про последнее не знаю
Anatolii
я чуток попозже кину полный кусок кода
Anatolii
@qnikst вот хэндлер из которого я ошибку получить не могу createUser :: MonadIO m => User -> ExceptT TodoErr m NoContent createUser u = do liftIO $ print u hoistEither $ checkUser u return NoContent checkUser :: User -> Either TodoErr () checkUser u = checkPassword u >> checkLogin u checkLogin :: User -> Either TodoErr () checkLogin User {..} | length login < minLoginLen = Left shortLogin | otherwise = Right () checkPassword :: User -> Either TodoErr () checkPassword User {..} | length password < minPasswordLen = Left shortPassword | otherwise = Right () type TodoErr = ServantErr shortLogin :: TodoErr shortLogin = err400 { errBody = "login" } shortPassword :: TodoErr shortPassword = err400 { errBody = "password" }
Anatolii
точнее статус код получа.
Anatolii
а боди пустое
Alexander
я попозже посмотрю, мне щас по работе овердофига сделать надо
Anatolii
Спасибо, я уже сам тут поковырялся
Anatolii
моя вина была
Anatolii
DHC клиент которым я запросы делал боди не показывал
Anatolii
Там Lts 7.0 выкатили с ghc 8.0.1, уряяяя
SimpleX
А с пакетами все ок? Там же какие то нововведения, ломающие совместимость
SimpleX
В смысле, в лтс все попало?
Anatolii
Я вчера только новость прочесть, ну и я не пишу фултайм на хаскеле😥 пока ничего сказать не могу
Stas
Привет! Посоветуйте литературу по хаскелю. Умею в плюсы03, джаву, котлин, скалу немного. Слушал в универе про разные выразительные системы типов на курсах функционального программирования и компиляторов, умею в лямбы, основы формальной логики. Работаю андроид разработчиком и грущу наследуя
Stas
хочу быстрее раздуплиться
adam
Stas
препод писал на агда и коке, а мы грустили, что не умеем так-же
adam
+ eopl, sicp, htdp, documentation
Ekin
sicp rip
Stas
на сколько я помню, в ней процедурный язык, и достаточно низкий уровень.
Stas
или меня уже тралят?
Ekin
по хаскелю много книг сейчас. почти все хороши
Anatolii
Haskell book самая свежая
Anatolii
Я себе составил список: Learn haskell for a great good RWH Beginning Haskell Parallel an concurrent haskell от Simon Marlow
Anatolii
Можешь пойти курсы на степике
Anatolii
Они мне в начале помогли
Darwin
Привет! Посоветуйте литературу по хаскелю. Умею в плюсы03, джаву, котлин, скалу немного. Слушал в универе про разные выразительные системы типов на курсах функционального программирования и компиляторов, умею в лямбы, основы формальной логики. Работаю андроид разработчиком и грущу наследуя
я сам учусь потихоньку, для себя составил план: идти по http://www.cis.upenn.edu/~cis194/spring13/lectures.html (с домашними заданиями и обязательным чтением дополнительного — http://learnyouahaskell.com/starting-out + http://book.realworldhaskell.org/read/ , сам по себе курс довольно хардкорный), сейчас там другой чел новый курс читает, но пока только 3 лекции выложено: http://www.cis.upenn.edu/~cis194/fall16/lectures.html Также рекомендую https://www.ohaskell.guide/ . Книга недописана, но то, что есть, доступно и хорошо.
Anatolii
Завтра кстати курсы начинаются от Glasgow University https://www.futurelearn.com/courses/functional-programming-haskell/1/
Stas
Спасибо за ответы
Алдар
Там монады хоть есть?
Алдар
В этом курсе от Glasgow University
Anatolii
На курсах от степика точно есть
Алдар
Не видел еще курса с монадными трансформерами)
Anatolii
Таких я тоже не видел, но я думаю если с монадами тебя знакомят
Anatolii
То с мтл ты уже как-то справишься
Алдар
да, наверное так думают, и курс не удлинять стараются
Anatolii
Это скорее чтобы дать толчок к дальнейшему изучению
Anatolii
По-моему курсы по хаскелю можно бесконечно вести
Anatolii
Товарищи, у меня тут вопрос возник
Anatolii
написал себе вот такую функцию
Anatolii
[User -> Either MyErr ()] -> User -> Either MyErr ()
Anatolii
сам
Anatolii
есть много проверок состояния юзера
Anatolii
вот таких функций: User -> Either MyErr ()
Anatolii
хотелось как-то их просто в список собрать
Anatolii
и чтобы явно не передавать юзера в каждую
Anatolii
check :: [User -> Either TodoErr ()] -> User -> Either TodoErr () check [] _ = return () check (x:xs) u = x u >> check xs u
Anatolii
я вот такое написал
Anatolii
в стд либ нету чегото похожего?
Anatolii
hoogle не помог
Evgeniy
А map итп?
Evgeniy
Юзера кидаешь на список функций как-то так
Anatolii
ну мне же надо чтобы если ошибка в однйо их них вылетит
Evgeniy
Я так понимаю это валидация?
Anatolii
да
Anatolii
в моем случае
Anatolii
вылетает первая ошибка
Anatolii
я не собираю результаты разных валидаци
Evgeniy
Тебе надо чтобы ошибки накапливались то думаю райтер