Vladislav
То есть показать, что число входить какой-то диапазон, это уже непростой случай.
Vladislav
Я не говорю уже о свойствах каких-то операций, а просто о констрейнте на входные или выходные данные.
Vladislav
Мне сложно представить себе доказательство чего-либо без зависимых типов или refinement-типов или беспощадного использования TypeFamilies+GADTs
Vladislav
И в последнем случае это не "отлично" строить доказательства, а "мучительно"
Cheese
Vladislav
в теории доказательства строятся на мета-языке
Vladislav
Значит добавляю Isabelle в список языков к поверхностному изучению
Anton
У них есть книга “Concrete Semantics” — довольно легко читается (это если интересует применение Isabelle к ProgLangTheory)
Anton
книжка в свободном доступе
Anton
А еще у Isabelle есть IDE 😉 (закончу оффтоп)
Sergey
а что за "чат про тапл"?
Sergey
deptypes?
A64m
А расскажите поподробнее, что за история с неправильным пониманием тайпклассов?
> Wadler conceived of type classes in a conversation with Joe Fasel after one of the Haskell meetings. Fasel had in mind a different idea, but it was he who had the key insight that overloading should be reflected in the type of the function. Wadler misunderstood what Fasel had in mind, and type classes were born!
Dmitry
Alexander
нету больше
Dmitry
@A64m_qb0 А вы, случаем, не можете посоветовать, что обзорного почитать по последним достижениям в доказательствах теорем за последние лет 10?
A64m
только я нигде не видел что на самом деле это Джо Фейзел придумал-то. в самом первом письме вадлера про тайпклассы https://homepages.inf.ed.ac.uk/wadler/papers/class-letter/class-letter.txt , он только пишет что идея тоже подразумевала указание класса в схеме типа, т.е. Вадлер перешел от эмельной перегрузки в (1) к (2) под влиянием интерпретации этой идеи, но в чем она заключалась нигде не написано Ж(((
A64m
arthur
Dmitry
Наслышан. Что конкретного обзорного почитать у него?
arthur
Посмотри видео, поищи
arthur
Я из телефона, у него хорошие видео intro
Dmitry
Спасибо, поищу.
Dmitry
https://www.youtube.com/watch?v=l79c_OqEjZI
Dmitry
Оно?
Dmitry
Это он там про HoTT расказывает же, да?
arthur
Нет это про то что он сам занимался, открыл
Ilya
Так он HoTT и придумал 🙂
Ilya
хотя и не только HoTT
Cheese
@qnikst этих QQ расплодилось уже много
Alexander
?
Dmitry
Спам
Dmitry
Надо бота прикручивать
Alexander
2шт
IC
капец, вчера вечером только кикнул десяток, сегодня уже штук 30 забежало
Dmitry
Позабыты хлопоты, остановлен бег,
Вкалывают роботы, а не человек.
A64m
я смотрю, хвр теперь и гхцжс-ы собирает
Alexander
а чего за мода в кафе стала непроверенный код писать, и вообще странные вещи?
A64m
всегда была
Alexander
бытие рассылкой больше не является блокирующим фактором?
Alexander
да раньше казалось как-то получше было
Alexander
или у меня просто болит голова и я сегодня злой
A64m
что, совсем плохо стало? я последнее время кафе не читаю
Alexander
ну как-то неприятно
Alexander
появились большое число тривиальный вопросов (нормально), с большим числом тривиальных ответов (не очень)
Alexander
ask a silly question and you get a silly answet
ㅤ
Евгений
\o/
A64m
сейчас на одного китайца будет 10 мусорных сообщений с приветствиями
Anonymous
а бот на сабже написан?
Bogdan
Господа, а не подскажите, как вы кэш в веб-сервисах делаете? Можно, наверно, такой пример привести: с одной стороны база, с другой стороны scotty. На тяжёлые запросы не хочется сильно часто ходить в базу. Можно это реализовать несколькими способами. Интересны ваши подходы.
IC
Так же, как и везде - redis.
Dmitry
TVar ?
Alexander
зависит от, отпростого Map, или Map на Tvar или Lrucache до редиса
Alexander
или lmdb
Alexander
redis реже
Влад
Привет ребята,
Можно ли написать такую общую функцию h, из этих двух? типа объединить в одноу
h :: Int -> (Int -> Maybe Int) -> Maybe Int
-- h _ Nothing = Nothing
h a b = b a
h2 :: Int -> (Maybe Int) -> Maybe Int
h2 _ Nothing = Nothing
чтобы было так:
h 5 Just == Just 5
h 5 Nothing == Nothing
Влад
И на сколько я отклонился от ФП парадигмы захотев написать такую функцию?
Alexander
foo x m = x <$ m ?
Alexander
не вижу в чем проблема хотеть такое написать
Alexander
<$ - живёт в Data.Functor
Влад
Прикольно спс, буду изучать)
Vladislav
@qnikst в случае с <$ надо будет 5 <$ Just (), а не 5 <$ Just, это не то же самое
Кабачок
Но и Nothing не Int -> Maybe Int
Vladislav
да, но в определении h там матчинг на Nothing закомменчен
Алексей
Тут главный вопрос: зачем?
Maxim
что-нибудь типа x & _Just .~ y не прокатит?
Vladislav
это эквивалент <$
Anonymous
@kwas000 будет жить. Поприветствуем!
Maxim
а, он вот что хочет...
Maxim
тогда да, вопрос зачем :)
Aleksei (astynax)
>
h 5 Just == Just 5
h 5 Nothing == Nothing
тут просто типики не сходятся
Aleksei (astynax)
понятно, что там Just _
Aleksei (astynax)
но всё же
Vladislav
так вопрос про то, как перегрузить, чтобы типы сошлись