Size: a a a

Kotlin Community

2021 January 06

DK

Denis Kalinochkin in Kotlin Community
LevT
Чтобы узнавать не только итерабле, но и гораздо более абстрактное поведение
Которое уже много людей узнаёт и умеет припрячь - а мы ещё в потёмках
Например?
источник

L

LevT in Kotlin Community
Denis Kalinochkin
Например?
Ну вот по списку тайпклассов.
Каждый из них не менее типичен-вездесущен, чем итерабле - просто мы пока не научены их видеть
источник

L

LevT in Kotlin Community
а надо не только видеть, но и уверенно юзать
источник

V

Vladimir in Kotlin Community
точно надо?
источник

DK

Denis Kalinochkin in Kotlin Community
Где можно найти пример кода, который с ними короче/проще/понятнее, чем без них?
источник

L

LevT in Kotlin Community
Vladimir
точно надо?
А это каждый за себя решает. Мне - надо
источник

L

LevT in Kotlin Community
Denis Kalinochkin
Где можно найти пример кода, который с ними короче/проще/понятнее, чем без них?
Дык это... без этих аццких фильтров-мапов тоже кое-кому до сих пор понятнее и проще
источник

V

Vladimir in Kotlin Community
даа, были б вакансии на хаскеле, может и не пришлось бы за тайпклассы в котлине агитировать :)
источник

DK

Denis Kalinochkin in Kotlin Community
LevT
Дык это... без этих аццких фильтров-мапов тоже кое-кому до сих пор понятнее и проще
Ну без фильтров мапов просто код больше получается, их плюсы для меня очевидны. А от монад и тайпклассов я пока пользы не вижу. Если она есть, хотелось бы ощутить на себе
источник

L

LevT in Kotlin Community
Vladimir
даа, были б вакансии на хаскеле, может и не пришлось бы за тайпклассы в котлине агитировать :)
Кому как. Мне тайпклассы нужны в первую очередь для себя, в т.ч. и умение собирать их из подручного материала
источник

AM

Andrew Mikhaylov in Kotlin Community
Denis Kalinochkin
А зачем нужны тайпклассы, когда есть интерфейсы?
Чтобы навешивать конкретные операторы на существующие классы. К примеру, под один интерфейс с общим набором экстеншнов вы просто так не подведёте, к примеру, List и Observable из Rx. Кроме того, Arrow со своими kinds частично решает, насколько я знаю, ещё и отсутствие в языке селф-типов. Кому-то, к примеру, очень претит тот факт, что setOf(1, 2, 3).map { it * 2 } возвращает в котлине List<Int>.

Хочу отметить, что я не агитирую за то, что в котлине это необходимо, просто отмечаю, чем это может быть полезно, и почему этого могут хотеть другие.
источник

L

LevT in Kotlin Community
Denis Kalinochkin
Ну без фильтров мапов просто код больше получается, их плюсы для меня очевидны. А от монад и тайпклассов я пока пользы не вижу. Если она есть, хотелось бы ощутить на себе
Хаскель вообще короче котлина, в т.ч. и благодаря тайпклассам.
Но не понятнее - для тех, кто не потрудился овладеть базой для понимания.
источник

L

LevT in Kotlin Community
А базой можно овладеть и здесь
источник

AM

Andrew Mikhaylov in Kotlin Community
LevT
Хаскель вообще короче котлина, в т.ч. и благодаря тайпклассам.
Но не понятнее - для тех, кто не потрудился овладеть базой для понимания.
Хаскель с котлином сравнивать бессмысленно, так как у них разный набор фичей, пусть и пересекающийся. Всё богатство котлина в HM не засунуть 🤷‍♂
источник

L

LevT in Kotlin Community
HM это что?
источник

DK

Denis Kalinochkin in Kotlin Community
А в хаскеле только HM разве?
источник

AM

Andrew Mikhaylov in Kotlin Community
LevT
HM это что?
Hindley-Milner, основа системы типов хаскеля.
источник

AM

Andrew Mikhaylov in Kotlin Community
Denis Kalinochkin
А в хаскеле только HM разве?
Не в оригинальном виде, конечно.
источник

L

LevT in Kotlin Community
Ага, дошло, спс
А чем котлин фундаментально богаче HM?
источник

AM

Andrew Mikhaylov in Kotlin Community
LevT
Ага, дошло, спс
А чем котлин фундаментально богаче HM?
Наличием сабтайпинга как минимум.

Но это всё сильно похоже на начало холивара, которые по нашему опыту приводят ни к чему. Давайте не будем продолжать.
источник