Ayrat
Такой типой случай тоже покрыт без хкт
Vasily
Ayrat
Task.WhenAll банальный это и делает
Vasily
Просто я себе в голове не могу представить
Vasily
Единственное, что могу представить - забор данных из разных источников
Bonart
Vasily
Ну и там банально Task.WhenAll порешает
Αλεχ
Aleksandr
Внутри task.whenall удачные результаты в ConcurrentQueue запихивал
Vasily
А дальше partition
Αλεχ
типичный пример, как мне сделать foo.Where(x=>x.RemoteCallAsync()
Vasily
Или фильтрация
Ayrat
принцип чего?
Ты вбросил что без ХКТ жизни нет, привёл банальный пример, который решается Task Seq -> Seq Task
При этом других реальных примеров необходимости не привёл
Αλεχ
var items = await Task.WhenAll(users.Select(x => (x, x.CanVisit(pageId));
return items.Where((_, b) => b);
Αλεχ
руками это выглядит как-то так
Αλεχ
паршиво
Aleksandr
Αλεχ
плюс не получится сагрегировать эксепшоны
Αλεχ
первый который упадет уронит await
Ayrat
А хкт тут при чём?)
Ayrat
Ну имплементация такая. Могла быть другая
Αλεχ
с хкт можно было бы сделать sequence и он бы сам все это развернул
Андрей
а тут надо ручками - страдай! ))
Ayrat
ещё раз - что такого критичного, если мы не можем лист опшнов в опшн листов преобразовывать?
Αλεχ
Aleksandr
Уверен в фшарпе достаточно один раз придумать хорошую модель обработки подобных траблов, а потом написать под это дело dsl
Ayrat
99% таких преобразований - полная дичь
Αλεχ
без траверсабл не сделать sequence
Αλεχ
без sequence остается писать руками все
Ayrat
Фолдабл Мейби в Мейби Фолдабл
Ayrat
ОКЕЙ
Ayrat
Я кстати за ХКТ. Вещь хорошая и у меня был кейс, когда без него я прям плакал, но твои примеры - детский лепет
A64m
в дотнете без hkt в принципе контейнерную библиотеку нормально не сделать
вернее нормально с точки зрения более позднего фп подхода.
пока фп претензий не было, не-хкт иерархией интерфейсов вполне можно было пользоваться меняя что-то на месте. т.е. мы через интерфейс ICollection или IList что-то теребим в коллекции, а ссылка -то вот она, того же типа осталась.
потом начались линкострадания и сишарп сразу уперся в ограничения дженериков, потому что теперь то надо результат возвращать. а линковые функции в основном возвращают IEnumerable, стирая статическую информацию о типе коллекции.
ее только динамически можно попробовать кастануть, что внутри линк-ту-обджектс методов обычно и делают, чтоб как-то воспользоваться дополнительной информацией о коллекции для более быстрой работы с ней.
т.е. досвидания статика, привет динамический глюкодром
если надо что-то возращать, а не изменять на месте - дженерики без хкт уже не катят, все фп потуги в языке без хкт или похожего инструментария ничем хорошим не закончатся.
A64m
т.е. любая контейнераная библиотека с иерархией контейнерных интерфейсов будет костыльной, можно нормально сделать только контейнерную библиотеку с конкретным типом итератора/списка, либо сверточную, типоа пакета foldl или явовых стримов, но это довольно ограниченные, маломощные и устаревшие подходы
A64m
хотя это эфшарповый чат, надо другой пример
A64m
типа пакета Streams или как он там
J. A. R. Kotlien
https://habr.com/ru/company/ruvds/blog/462483/#comment_20474225
Зарекламировал F# тут.
Shub
Звучит как ебанина, простите за мой французский
ты просто не думаешь, как думают эти люди. у тебя в голове разворачивается целая вселенная: а какая реально проблема решается? а какие краевые случаи? сроки? сколько людей пишет, кто эти люди, я их знаю? я им верю? какой срок жизни у этого проекта, как будут меняться требования? и только потом ты начинаешь думать про реализацию.
как думают эти люди: о, смотрите, List<Task<T>>. сделаю-ка я из него Task<List<T>>
x
господа линуксобояре, а как в вашем мире перенести мои пекеджи в другой дистрибутив? поставил вместо убунту манджаро, а тут внезапно другой пакадж менеджер
x
неужеле руками?
x
*мои пекеджи == пекеджи, которые я ставил в убунте
x
браузеры, телеграмы, вскоде - такое
Romɑn
в дотнете без hkt в принципе контейнерную библиотеку нормально не сделать
вернее нормально с точки зрения более позднего фп подхода.
пока фп претензий не было, не-хкт иерархией интерфейсов вполне можно было пользоваться меняя что-то на месте. т.е. мы через интерфейс ICollection или IList что-то теребим в коллекции, а ссылка -то вот она, того же типа осталась.
потом начались линкострадания и сишарп сразу уперся в ограничения дженериков, потому что теперь то надо результат возвращать. а линковые функции в основном возвращают IEnumerable, стирая статическую информацию о типе коллекции.
ее только динамически можно попробовать кастануть, что внутри линк-ту-обджектс методов обычно и делают, чтоб как-то воспользоваться дополнительной информацией о коллекции для более быстрой работы с ней.
т.е. досвидания статика, привет динамический глюкодром
если надо что-то возращать, а не изменять на месте - дженерики без хкт уже не катят, все фп потуги в языке без хкт или похожего инструментария ничем хорошим не закончатся.
Пропозал есть, ждем.
Сами даже если пулреквест оттестирвоанный сделаем, не примут его.
Можем конечно свой дотнет делать, но не тот путь же ну
Romɑn
Диёр
щас тимлид бугуртить начал как некрасиво зп обсуждать
ууу сцуко боярам мешают зп удерживать
Romɑn
https://twitter.com/vronnie911/status/1158387373211734016?s=09
Hog
мог бы haskell на F# перерисовать :)
Диёр
мне интересно если бы вместо ооп захайпили фп, то сейчас бы тоже были хипстерские чаты, где люди говорили бы: "ох сидят монадами обмазываются в своём хаскеле когда в жабке пару классов описал и нормально"?
Ilya
История не знает сослагательного наклонения.
Диёр
Ну это то понятно, но всё равно интересно
Ilya
Диёр
ну он начал говорить что начинают бегать просить повышения один за другим, а у проекта бюджет и т.п.
Igor
Ilya
Диёр
A64m
Igor
Да, там одна фабрика, возвращает другую фабрику, а та билдер
Ilya
Диёр
Я не знаю сколько начальников идёт на эту хрень когда ты получаешь привилегии и тебя просят никому об этом не говорить, но от этого прям тошно. Даже в гребаном детском садике с этим сталкивался.
Aleksandr
AbstractFactoryBuilderBuilderBase
Bonart
Anonymous
Ilya
Було
Диёр
А это его бюджет что ли?
Нет, но если челики начнут массово буянить на тему "а почему он делает меньше и получает больше", а он сам не сможет эту ситуацию разобрать и разработчики начнут сливаться или менять планы на бюджет, то я думаю ему прилетит
Danil
Roman
Ilya
Ну причины могут быть разные, справедливости ради :)
A64m
гиперфиксация спасла от страшной смерти в горящем доме
Viacheslav
A64m
понятно, что такая задумка была но выглядит это по другому
шел медведь по лесу, но отвлекся и неувидел что машина горит, не сел в нее и не сгорел
Диёр