Size: a a a

2020 December 22

W👑

WHUSEIN 👑 in F# Chat
😂
источник

W👑

WHUSEIN 👑 in F# Chat
кикнули
источник

g

gsomix in F# Chat
WHUSEIN 👑
нету доступа к тому чату
Забанили? Посмотри, какие еще есть чаты про C#.

https://github.com/goq/telegram-list#Языки-программирования
источник

P

Pavel in F# Chat
А кому-то на практике не хватало тайпклассов в фарше? В каких кейсах?
источник

VZ

Vlad Zaa in F# Chat
Pavel
А кому-то на практике не хватало тайпклассов в фарше? В каких кейсах?
Я вот тоже удивляюсь каждый раз. Обычно ими хотят заткнуть недостатки/недочеты в архитектуре, которые должны были бы решиться собственно во время дизайна.
источник

P

Pavel in F# Chat
Vlad Zaa
Я вот тоже удивляюсь каждый раз. Обычно ими хотят заткнуть недостатки/недочеты в архитектуре, которые должны были бы решиться собственно во время дизайна.
У меня ощущение (может обманчивое) что их просят хаскелисты, по инерции..
Мне тайпклассы напоминают интерфейсы, с некоторыми нюансами
источник

R

Roman in F# Chat
Pavel
А кому-то на практике не хватало тайпклассов в фарше? В каких кейсах?
Да. Юзкейс всегда простой — тебе хочется "докинуть" интерфейс к чужому типу.
источник

P

Pavel in F# Chat
Roman
Да. Юзкейс всегда простой — тебе хочется "докинуть" интерфейс к чужому типу.
Понятно, осталось вспомнить когда и зачем мне этого хотелось)
источник

R

Roman in F# Chat
Pavel
Понятно, осталось вспомнить когда и зачем мне этого хотелось)
каждый раз, когда ты писал какой-нить враппер над несколькими чужими типами, а потом работал с этим враппером
источник

R

Roman in F# Chat
вот это идеальный юзкейс для тайпкласса, чтобы не плодить эти мусорные врапперы
источник

P

Pavel in F# Chat
Roman
каждый раз, когда ты писал какой-нить враппер над несколькими чужими типами, а потом работал с этим враппером
Ну это таже самая мысль) не припомню реального кэйса чтоб нужно было такие врапперы, хотя конечно наверно бывает. Ну как тут говорят, возможно мой опыт тоже не релевантный)
источник

R

Roman in F# Chat
собсно, с тайпклассами и интерфейсы не нужны
источник

R

Roman in F# Chat
т.е. тайпклассы могут заменить и интерфейсы, и врапперы. Это более общий и удобный инструмент, при хорошей поддержке со стороны языка и тулинга, конечно.
источник

P

Pavel in F# Chat
Вспомнил когда писал враппер. Есть IList, а надо было IList<My>
источник

P

Pavel in F# Chat
Roman
Да. Юзкейс всегда простой — тебе хочется "докинуть" интерфейс к чужому типу.
Спасибо за понятный пример
источник

MS

Mark Shevchenko in F# Chat
Популярный пример: применение методов расширения Enumerable к массивам и спискам. У тебя есть массив, ты хочешь его отфильтровать и на выходе получить массив (или то же самое со списком). Тебе приходиться вызывать методы ToArray или ToList в конце цепочки LINQ-методов.

Если бы в языке были тайп классы, а не интерфейсы, они возвращали бы тот же самый тип, к которому их применили. Where для массива возвращал бы массив.
источник

I

IdiocyAcceptance in F# Chat
Такой подход бы потребовал реализовать специализированные методы для каждой коллекции так или иначе
источник

I

IdiocyAcceptance in F# Chat
а не просто энумератор
источник

MS

Mark Shevchenko in F# Chat
IdiocyAcceptance
Такой подход бы потребовал реализовать специализированные методы для каждой коллекции так или иначе
Ну да, тайп-классы так и делаются. Ты описываешь некий аналог интерефеса и потом делаешь его реализацию для своего типа.
источник

I

IdiocyAcceptance in F# Chat
но по идее помогло бы убрать всякие интерфейсные аллокации с другой стороны
источник