x
Вот неясно. Остров не является помехой мировому господству (доказано соседом)
думаю этот сосед неплохую лепту внёс. Грабежи-набеги, север вообще отжали. А ирландцам всегда было проще куда-то свалить чем у себя что-то строить.
Bonart
я не F#, я сочувствующий. так-то мне в F# сильно Тайп Классов не хватало
На C# можно приготовить тайпклассы, на F# скорее всего тоже можно
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
Неясно, где применить
Bonart
Да почти везде. Достали паразитные аллокации при итерации через IEnumerable<T>?
Bonart
Хочется халявного LINQ для любой монадки?
Bonart
Т.е. нативная поддержка тайпклассов была бы очень к месту, но за неимением гербовой...
Vasily
Тайпклассы будешь эмулировать дефолтными интерфейсами
Bonart
Это как?
Смотри ссылки на код ниже цитаты :)
Vasily
На f# есть пропозал по type extension
Vasily
Точнее, по его видимости для srtp
Bonart
На f# есть пропозал по type extension
Да, сделают - отлично будет
Vasily
В общем, я про то, что в каждом языке все же свои подходы
Vasily
И не стоит, имхо, натягивать сову на глобус. В c# с т.з. аллокаций очень перспективно выглядят спаны
Bonart
Конечно. Я к тому, что конкретно классы типов можно сделать для дотнета, не имея их в языке.
Bonart
И не стоит, имхо, натягивать сову на глобус. В c# с т.з. аллокаций очень перспективно выглядят спаны
Спаны жестко посажены на массивы, т.е. куда менее обобщенные и куда более байто.. ские
Vasily
Спаны жестко посажены на массивы, т.е. куда менее обобщенные и куда более байто.. ские
Это пофиг в общем-то. Они все равно отлично справляются с задачей переиспользованич памяти
Vasily
На паразитные аллокации лично мне пофиг
Vasily
Они вряд ли gen0 переживут
Bonart
Это пофиг в общем-то. Они все равно отлично справляются с задачей переиспользованич памяти
Если код специально затачивать под это. Я хочу чтобы было эффективно, без дубликаци и без специальной заточки.
Bonart
Т.е. чтобы нормальный бизнес-код не был кривым по построению в рантайме
Bonart
Нормальный бизнес код по умолчанию кривой
В данном философском вопросе у меня другое мнение :)
Vasily
Просто потому, что качество кода равно нижнему уровню всех участников процесса
Romɑn
Вы все не правы
Bonart
Просто потому, что качество кода равно нижнему уровню всех участников процесса
И классы типов - один из способов этот уровень поднять
Vasily
И классы типов - один из способов этот уровень поднять
Ну я бы сказал, что проблема так не решается
Bonart
Ну я бы сказал, что проблема так не решается
Серебряной пули таки нет... но ряд неприятных вопросов снимается.
Vasily
Ну т.е. тут по идее должен стоять запрет на их неиспользование
Bonart
Ну т.е. тут по идее должен стоять запрет на их неиспользование
Это я могу реализовать. Мой разработчик в среднем должен писать не хуже меня самого. Решается это через код-ревью с ментороством. КЛассы типов помогают сократить трату моих сил на это.
Bonart
Гггг
Я уже так делал неоднократно
Vasily
Вроде взрослый, а в сказки веришь
Romɑn
Вроде взрослый, а в сказки веришь
Если тебе не подходит, то не факт что другим не подходит
Bonart
Вроде взрослый, а в сказки веришь
Кому сказка, а кому рабочий процесс.
Bonart
Худший вид пессимизма - принимать акцидентную сложность за существенную.
Bonart
И наоборот)
Наоборот пока еще прецедентов не было.
Romɑn
Ему это не подходит
Bonart
Ну вон Василий
Я про свой опыт само собой. На других не обобщаю, в отличие от Василия :)
Bonart
Т.е. я утверждаю только что оно в принципе ВОЗМОЖНО, так как у меня имеется success story и не одна.
Vasily
На моем жизненном пути, к сожалению, люди, которые вроде бы хотели разумного, доброго, вечного, оказывались в основной своей массе упоротыми ебанатами
Bonart
Люди в основной своей массе учиться не хотят. Но всегда есть те, кто хотят и могут
Ayrat
Решил тут с утра выпить пивка. В пабе взяли пинту (2.5 евро!!) и 2 "коктейля" (12 евро). На фотке 2 бидона бухла. Я нашёл идеальный паб. Он ещё с видом на море
Ayrat
Ayrat
Придется пить два бидона бухла.
Vasiliy
Ухххххх!! хорошо устрился
Anonymous
Придется пить два бидона бухла.
Бедненький... Как же ты страдаешь!
Ayrat
Бедненький... Как же ты страдаешь!
Я страдаю за вас всех!!11
Диёр
За себя и за Сашку!
Anonymous
Да, а что?
Выглядит бедненько
Ayrat
Ayrat
Бухаю и плачу.
Vasily
В Москве не лучше
Ayrat
Ну тут 20 где-то градусов. в футболке комфортно
Ayrat
В Москве я слышал чот холодно
Крылатый
Ммм, серое небо
Vasily
В Москве я слышал чот холодно
Ты слышал, а мы тут живем
Anonymous
Грустно
Bonart
Выглядит бедненько
А что ты хотел? Обобщенный код делать можно, без явного указания типов-параметров обойтись можно, код генерируется очень приличный, аллокаций лишних нет.
Bonart
Это все правда, да, но вот что-то мне не нравится в таком подходе.
Что именно? Сахару конечно меньше чем в хаскеле. У обобщенных методов сигнатуры страшненькие, помимо инстанса тайпкласса надо ваять метод для заворачивания, помимо интерфейса для класса надо писать структуру-обертку. Но по сравнению с хаскелем есть и плюсы - можно иметь больше одного инстанса тайпкласса на тип одновременно.