<@U0AK3QC2V> Про pattern matching - обсудил со зна...
# russian
a
@abreslav Про pattern matching - обсудил со знакомым, работающим на scala. Да, он стал фанатом pattern matching (когда перешёл с java на scala). Говорит, что всё стало намного проще и понятнее. Потом поговорил с java-программистом. Тот при обработке деревьев сначала пишет псевдоко на p.m. а потом переводит его в java. Так что его любят те, кто распробовал. Что говорит скорее в его пользу. Но делать очень сложно, да. Вот если бы сделать это библиотекой, или “почти библиотекой” (как корутины)...
o
Тут важный момент – что именно пишет знакомый. Мы проводили небольшое исследование, и выяснили, что PM в основном используется при обработке AST, и крайне мало в других местах (если вы пишете не на erlang, конечно)
a
На скале- что-то там про блокчейны и прочий машинлёрнинг. Не в банке 🙂 Другой- предсказание событий и интеграция с логами и геодеревьями безумными. В понедельник попрошу показать примеры.
e
Еще один anecdotal piece of evidence. На JPoint подошла пара ребят с вопросом про PM. Я спросил: — а в каком коде он вам помогает? — Ну когда “глубоко надо матчить“. — А где надо глубоко матчить? — Ну вот если у нас есть `
Future<Optional<Data>>
...
🤣 6
g
А у Java с его пропозал на PM есть хорошие аргументы, не покрываемые в данный момент Котлиновским when? Я смотрел презентацию Брайна Гетца про PM и там 90% примеров на вскидку уже без проблем работают в Kotlin благодаря смарт касту
a
После обсуждения- да, PM в scala- сводится к kotlin’вкому when + деструктор. Вроде как никто ничего свыше не нашёл. Так что можно считать это сахаром- а излишний сахар вреден не только людям 🙂
С точки зрения функциональщины народу больше не хватает полноценной хвостовой рекурсии (при рекурсии через несколько методов), но это VMная проблема.