A64m
ну там порядок аргументов другой
eahqzsr
Точно, спасибо
eahqzsr
Все пашет.
Ilya
А кто-нибудь может тыкнуть в место в документации, где написано, как у нас проверяется, что Default signature matches non-default type signature?
Ilya
а то у меня t repr s Int вместо repr s Int прокатывает при дефолтных кайндах, но потом в другом месте кайнды не сходятся
Ilya
а если я явно правильные кайнды указываю, вылезает ошибка о том, что сигнатуры не совпадают
кана
ifM :: Monad m => m Bool -> m a -> m a -> m a ifM mc mt me = mc >>= \c -> if c then mt else me main = do ifM (read <$> getLine) (print 10) (print 20) print $ (ifM even succ pred) 10 -- 11
кана
что-нибудь такое
кана
теперь для инстанса монады для стрелки должно работать как хочется выше
A64m
так вроде речь про инстанс для ридера.
кана
ну и у меня используется ридер-инстанс стрелки
кана
а, ты типа к тому, что для ридера лишнее выполнения эффекта не страшно
кана
это да, верно
Igor
Тут, конечно, все и так умные, но если что, то вот: https://www.manning.com/books/haskell-in-depth, скидка 50% до 8 июля по промокоду mlbragilevsky
А для стаpта пойдет? Какое-то пpимеpное понимание есть, но не более того. С ООП (Java, Kotlin) и паpодией на ФП (Scala) знаком, и знаком весьма неплохо.
Igor
Для старта лучше Learn Haskell for Great Good
Спасибо. А по-диагонали читается, или там концентpация инфоpмации ноpмальная?
Dmitry
Уж лучше https://anton-k.github.io/ru-haskell-book/book/home.html
Andrew
Так может сами откроете и оценете? :) А то все время слушать чужие ничего не значащие мнения ни к чему не привидет :)
Dmitry
А для начала ещё и вот: https://www.ohaskell.guide/
Andrew
Я на старте пользовался вышеупомянутой мною книгой и курсом от Дениса Москвина на stepik.org
Alexander
это кстати в первой главе написано
Alexander
ну или где-то вначале книги
Vitaly
Вот, кстати, скидка на обе книги https://www.manning.com/dotd
eahqzsr
В 7.10 LambdaCase уже был?
Dmitrii
В 7.10 LambdaCase уже был?
Да. Он появился в 7.6. Вот полезная ссылка по истории LANGUAGE прагм: https://ghc.haskell.org/trac/ghc/wiki/LanguagePragmaHistory
eahqzsr
Чёт не хочет работать у меня на codewars
Vitaly
Можно! Тем более, что старая скидка сгорела
Alexander
А у Manning «Deal of the Day»: можно прикупить одновременно Get Programming with Haskell и Haskell in Depth с промокодом dotd070918au!
Alexander
опс, с нотификацией прицепил, ну ладно
Vitaly
И хорошо!
Lev
блин. отцепляй назад, но только в противофазе
Lev
(в ушах до сих пор звенит :)
Vitaly
Ого
eahqzsr
А как по-вашему - liftA2 f1 f2 f3 или f1 <$> f2 <*> f3?
Quet
@bravit111 а когда планируется обновление меапа? а то всего 3 главы пока
Vitaly
@bravit111 а когда планируется обновление меапа? а то всего 3 главы пока
В среднем раз в месяц, но тут не только от меня зависит, я уже две главы написал на ~80 страниц, но их пока редакторы не читают.
Quet
а это сразу пишется на английском или на русском и потом переводится?
Alexander
Предположу, что сразу на английском. Двойную работу делать не хочется
Алексей ayaye :)
в примере опечатка? у symbol первым параметром должен парсер быть
Aleksei (astynax)
в примере опечатка? у symbol первым параметром должен парсер быть
Если для Parsec есть инстанс IsString, то норм. Предположу, что есть
Aleksei (astynax)
Aleksei (astynax)
всё проще
Алексей ayaye :)
где такое определение?
Aleksei (astynax)
https://hackage.haskell.org/package/parsec-3.1.13.0/docs/Text-Parsec-Token.html#v:symbol
Aleksei (astynax)
Хотя м.б. это и не тот symbol, но в индексе хаддоки к Parsec, только этот есть :)
Aleksei (astynax)
Вообще странно, это же геттер. Он должен принимать TokenParser первым параметром
Aleksei (astynax)
М.б. пример - абстрактный?
Алексей ayaye :)
я не знаю, как раз пытаюсь разобраться, как этим пользоваться
Aleksei (astynax)
> :m +Text.Parsec.Token > :t symbol symbol :: GenTokenParser s u m -> String -> ParsecT s u m String
Aleksei (astynax)
Похоже примеры таки абстрактные
Aleksei (astynax)
Т.е. "symbol ","", это просто "парсер некоего символа (не Char, а токена)
Aleksei (astynax)
Или же это анахронизм из времён, когда парсер string назывался symbol (это тоже предположение)
Алексей ayaye :)
Алексей ayaye :)
как я и сказал - опечатка
Aleksei (astynax)
опечатка, это sumbol. А symbol в роли string по всей доке в половине примеров
Алексей ayaye :)
да я понимаю, просто точнее писать длинно :)
Timofey
Интересно, а есть разновидность Literate Haskell, которая (хотя бы) тайпчекает примеры из Хаддока?
Timofey
И вообще, жив ли Literate Haskell?
Aleksei (astynax)
Жив
Timofey
Спасибо
Aleksei (astynax)
+1 за doctest
Leonid 🦇
есть foo:: Lens' a (Maybe b) и bar :: Lens b c, как сделать как скомбинировать сеттер что-бы в итоге view foo s == Just c?
Maxim
а что он будет сеттить если там Nothing?
Maxim
если взять вместо Lens' Traversal', то вроде как все композится
Leonid 🦇
вот этот nothing и надо заменить на just
Maxim
еще можно написать через lens штуку, которая будет кидать error когда надо посеттить в Nothing, но мне не нравится такое решение (недавно появилось в нашем коде)
Maxim
погоди, как ты его заменишь на Just если ты знаешь только его часть?
Leonid 🦇
а то в два шага не красиво.
Maxim
можешь взять non чтобы задать дефолтное значение для b
Maxim
типа foo . non defaultB . bar
Leonid 🦇
ой, второе не bar не Lens а Prism
Leonid 🦇
т.е. я конструирую значение b
Leonid 🦇
те