Крылатый
Bonart
Bonart
Вот тебе полугруппа
https://github.com/Kirill-Maurin/Sample.Struct/blob/master/Sample.Struct/Summators/ISummator.cs
Bonart
https://github.com/Kirill-Maurin/Sample.Struct/blob/master/Sample.Struct/Summators/IntSummator.cs
Вот реализация полугруппы для целых
Bonart
Вот волшебная обертка с перегрузкой сложения. И там же обобщенный метод для подсчета суммы коллекции с элементами-полугруппами
https://github.com/Kirill-Maurin/Sample.Struct/blob/master/Sample.Struct/Summators/Additive.cs
Bonart
https://github.com/Kirill-Maurin/Sample.Struct/blob/master/Sample.Struct/Summators/IntAdditive.cs
А это-фантик для заворачивания целого в обертку
Vasily
А ведь кому-то это все поддерживать
Bonart
Конечно не так няшно как в хаскеле.
Bonart
А ведь кому-то это все поддерживать
Интерес был как раз в облегчении поддержки. На F# шумового говнокода должно быть поменьше, так как большая часть сишарпового связана с обходом косяков вывода типов
Vasily
Не совсем ясна область применения
Bonart
Не совсем ясна область применения
Использовать обобщенный код вместо лобового без потери эффективности. Оверлоадить операции для типов, в которых аффтар этого не предусмотрел.
Vasily
Vasily
Неясно, где применить
Bonart
Да почти везде. Достали паразитные аллокации при итерации через IEnumerable<T>?
Bonart
Хочется халявного LINQ для любой монадки?
Bonart
Т.е. нативная поддержка тайпклассов была бы очень к месту, но за неимением гербовой...
Anonymous
Vasily
Тайпклассы будешь эмулировать дефолтными интерфейсами
Bonart
Bonart
Это как?
Смотри ссылки на код ниже цитаты :)
Vasily
На f# есть пропозал по type extension
Vasily
Точнее, по его видимости для srtp
Bonart
Vasily
В общем, я про то, что в каждом языке все же свои подходы
Vasily
И не стоит, имхо, натягивать сову на глобус. В c# с т.з. аллокаций очень перспективно выглядят спаны
Bonart
Конечно. Я к тому, что конкретно классы типов можно сделать для дотнета, не имея их в языке.
Bonart
Vasily
На паразитные аллокации лично мне пофиг
Vasily
Они вряд ли gen0 переживут
Bonart
Т.е. чтобы нормальный бизнес-код не был кривым по построению в рантайме
Vasily
Vasily
Просто потому, что качество кода равно нижнему уровню всех участников процесса
Romɑn
Вы все не правы
Doge
Bonart
Vasily
Vasily
Ну т.е. тут по идее должен стоять запрет на их неиспользование
Vasily
Bonart
Гггг
Я уже так делал неоднократно
Vasily
Вроде взрослый, а в сказки веришь
Romɑn
Bonart
Худший вид пессимизма - принимать акцидентную сложность за существенную.
Bonart
И наоборот)
Наоборот пока еще прецедентов не было.
Romɑn
Romɑn
Ему это не подходит
Bonart
Ну вон Василий
Я про свой опыт само собой. На других не обобщаю, в отличие от Василия :)
Romɑn
Bonart
Т.е. я утверждаю только что оно в принципе ВОЗМОЖНО, так как у меня имеется success story и не одна.
Vasily
На моем жизненном пути, к сожалению, люди, которые вроде бы хотели разумного, доброго, вечного, оказывались в основной своей массе упоротыми ебанатами
Bonart
Люди в основной своей массе учиться не хотят. Но всегда есть те, кто хотят и могут
Anonymous
Ayrat
Решил тут с утра выпить пивка. В пабе взяли пинту (2.5 евро!!) и 2 "коктейля" (12 евро).
На фотке 2 бидона бухла.
Я нашёл идеальный паб. Он ещё с видом на море
Ayrat
Ayrat
Придется пить два бидона бухла.
Vasiliy
Ухххххх!! хорошо устрился
Ayrat
Диёр
За себя и за Сашку!
Bonart
Ayrat
Ayrat
Бухаю и плачу.
Vasily
В Москве не лучше
Ayrat
Ну тут 20 где-то градусов. в футболке комфортно
Ayrat
В Москве я слышал чот холодно
Крылатый
Vasily
Anonymous
Bonart
Выглядит бедненько
А что ты хотел? Обобщенный код делать можно, без явного указания типов-параметров обойтись можно, код генерируется очень приличный, аллокаций лишних нет.
Anonymous
Bonart
Это все правда, да, но вот что-то мне не нравится в таком подходе.
Что именно? Сахару конечно меньше чем в хаскеле. У обобщенных методов сигнатуры страшненькие, помимо инстанса тайпкласса надо ваять метод для заворачивания, помимо интерфейса для класса надо писать структуру-обертку. Но по сравнению с хаскелем есть и плюсы - можно иметь больше одного инстанса тайпкласса на тип одновременно.
Anonymous