Кабачок
а в Аде?..
A64m
нет
Ю ли я? 🤔
A64m
Как будто без этого утверждения кто-то мешает работать
мешает, конечно. авторы языков все время любят обосновывать что делать ничего не надо, никогда нельзя им подпевать и нормализовывать такую ситуацию, когда они не дело свое делают, а подводят обоснование почему делать ничего не надо
Quet
Sergey
https://github.com/tc39/proposal-flatMap/pull/56
Sergey
ВЖУХ is the new bind
Denis
А вот скажите пожалуйста, я могу полагаться на то, что тут всегда будет 42, а не 13? Или это деталь текущей реализации? Документация, вроде, помалкивает на этот счет.
GHCi> unionBy (\(x,_)(y,_)->x==y) [(1,42),(2,12)] [(1,13),(8,506)]
[(1,42),(2,12),(8,506)]
GHCi> intersectBy (\(x,_)(y,_)->x==y) [(1,42),(2,12)] [(1,13),(8,506)]
[(1,42)]
Dmitry
Duplicates, and elements of the first list, are removed from the the second list, but if the first list contains duplicates, so will the result. It is a special case of unionBy, which allows the programmer to supply their own equality test.
Dmitry
?
Dmitry
http://hackage.haskell.org/package/base-4.10.1.0/docs/Data-List.html#v:union
Dmitry
Т.е. должно быть 42
Denis
Dmitry
Кстати, пользуясь случаем, хочу поблагодарить за курс. Было круто :) А не планируете третью часть или что-нибудь ещё? Часто вижу вопросы от новичков о связи теории категорий и Haskell, вот бы такой курс получить!
Dmitry
@deni_ok ^
Igor
Denis
@deni_ok ^
Всегда приятно слышать отзывы, особенно положительные. Я боюсь, что в формате MOOC сложно что-то еще сделать. Уже вторая часть не дотягивает по востребованности до разумной с моей точки зрения планки. Но тут я заказчиков заранее предупреждал, что даже на волне успеха первой части набрать достаточно много слушателей на вторую будет сложно.
Dmitry
Да, чем сложнее тема, тем сильнее тянет с учебниками разбираться, а не видео смотреть.
Dmitry
Для обзора темы MOOC хороши
Dmitry
Для глубокого бурения -- уже нет.
Aliester
я вообще не уверен как глубоко бурить без реального рабочего погружения
Dmitry
По идее, это ж задачами решается.
Dmitry
Я Haskell начинал изучать с решением задачек с Project Euler
Dmitry
В смысле, что задачников-то в инете хватает. Берёшь и погружаешься.
Alexander
@deni_ok а можно слайды (если есть) и задачи с курса по типам будет опубликовать в каком-то виде?
Alexander
:(
Alexander
а можно полуоткрытую или по приглашениям, бета-тест, трайал-период ?
Dmitry
А что за курс по типам?
Антон
Denis
Alexander
Dmitry
Alexander
https://twitter.com/_bravit/status/971472210002108417 начиная отсюда
Антон
алсо теперь это чатик для обсуждения тветиттера брагилевского
Alexandr
Антон
Кибербуллинг любой плохо.
Alexandr
😂
Alexander
я не знаю где ссылку на курс в АУ найти, а по той ссылке было много комментариев по которым можно составить представление о чем разговор
Dmitry
https://twitter.com/FunctorFact/status/971560275907436544
Dmitry
с чего это вдруг?
Dmitry
категористы, растолкуйте
кана
линза смотрит в произведение
призма смотрит в сумму
Антон
Dmitry
ага, спасибо, я разобрался
Dmitry
https://stackoverflow.com/questions/32223859/whats-the-difference-between-a-lens-and-a-partial-lens
Dmitry
вот тут более развёрнуто
Антон
Гонзалеса читал, но он больше о том, как линзы использовать, чем как они устроены
кана
А можете подсказать внятное введение в линзы?
линзы over tea - https://artyom.me/#lens-over-tea
ну или решить кату на кодваре, самому пытаясь по типам разобраться (с призмами жесть, но за сутки с нулевыми знаниями справился) - https://www.codewars.com/kata/lensmaker/haskell
кана
ну и я еще писал разбор работы - https://t.me/kanaflow/23
Антон
Благодарю
кана
что делать если хочется много разных стейтов и не хочется делать рекорд? (и лишнего бойлерплейта)
кана
и чтобы нужный стейт для бинда/лифта сам выводился
Андрей
у меня одного идея тормозит в хаскеле?
Слава
а в Аде?..
Замечательно там с модулями. Вплоть до обобщённых
A64m
нет
Andrey
нет
а что вообще хотелось бы от системы модулей? ну например — как можно сделать лучше чем в OCaml?
A64m
в аде намного хуже чем в окамле
Andrey
ну я просто видел выше что "нигде не хорошо, а в OCaml они хотя бы есть" (неточная цитата)
A64m
а, ну просто ответ был не на то сообщение, а сообщение про аду
в принципе есть дрееровские работы по улучшению макквиновских модулей вообще, по миксинам, когда не нужно программисту вручную функторы применять, а автоматически миксин-линковка ему помогает, и соотвественно код в котором едет функтор через функтор выглядит как обычный, импорт от параметра функтора не отличается.
также есть проблемы с аппликативными функторами, для решения которых надо код на чистоту проверять.
но вообще, вероятно, в окмле с модулями ситуация лучше всего.
Andrey
ясно, спасибо. Миксины это MixML?
A64m
да
Andrey
еще конечно 1ML интересная штука — унификация core language и module language
Andrey
https://people.mpi-sws.org/~rossberg/1ml/
A64m
ну это работа по облегчению формализации, может быть энкодинга в языках, где модулей нет и имплементации, тут именно для пользователя языка нету каких-то улучшений
Andrey
и там последняя бумага про модули с эффектами, которая изящно (субьективное мнение) описывает генеративность
A64m
1ml нормально генеративные функторы описывает, вот с аппликативными не все так радужно уже
A64m
Ага, 8.4 зарелизили в один день с llvm 6, но с официальной поддержкой предыдущей версии, естественно
A64m
https://twitter.com/bgamari/status/971798817048850432
A64m
первый релиз гхц без фич лет за 20 (но это не точно)
кана
вот имею в стейте Maybe Int
как мне так извернуться чтобы »= отдавал только если в стейте Just?
то есть чтобы
put $ Just 10
x <- get
x :: Int
?
Кабачок
Just x <- get | ...
что-то же такое было?
Anonymous
Никак
Anonymous
Или сделай StateT Maybe Int
Leonid 🦇
Alexander
@bravit111 на курсах про идрис я спрашивал, про то можно ли с уникальными типами сортировку больее-менее доказанную запилить. Тогда в идрисе я не осилил, а в haskell более-менее норм https://www.tweag.io/posts/2018-03-08-linear-sort.html