Andrew
Ayrat
ну собсно то что он поиск мамки в листе интов не подсвечивает как ошибку - те же корни
Ayrat
дженериков нет, пизда стат анализу
Ayrat
Но самый конченый
Ayrat
это конечно toSet
Andrew
Скинул рофлы из скалы в одну беседу где много жсров, они пожали плечами и сказали "ну в любом языке есть недостатки"
Andrew
Я чет орнул
Ayrat
т.е. вот ожидать что эта ебанина тебе bool вернёт
Ayrat
это прям пахнуло гошечкой
Ayrat
попробуй сам понять по этому таймкоду
https://www.youtube.com/watch?v=uiJycy6dFSQ&t=29m20s
Ayrat
но типа
на самом деле строка выглядит так
(List(1,2,3).toSet) ()
Ayrat
заметь как я расставил скобки
Andrew
))
Ayrat
далее вступает в силу тайп инфиренс скалы, который видит справа поиск () в результирующем сете, а юнит имеет тип Any, значит и List на самом деле List<Any> потому что может (ковариантность, как List<int> :> List<object>)
Andrew
() это тоже юнит в скале?
Ayrat
т.е. ты получил List<any>....toSet? получаешь Set<Any>
Ayrat
далее ты ищешь в нём () юнит и не находишь
Ayrat
получаешь false
Andrew
Ну и в нем юнита нет. поэтому фолс
Andrew
Понял
Andrew
Ну это конечно заебись
Ayrat
Это прям некст левел булщит
Aleksandr
недавно разбирал один ml код и увидел там запись типа
match !x with
| true -> ...
Aleksandr
как же тяжело было после си сообразить, что ! - это не отрицание)
Aleksandr
языки такие языки
Aleksandr
именно
Ayrat
перестаёшь думать что язык X идеальный
Vasily
В скале просто erased types
Vasily
Ну шо вы начинаете
Vasily
Нет там информации о типах в рантайме
Sergey
Vasily
В жвм*
Да, это и имел в виду
Ayrat
Vasily
Поэтому можно сделать вывод, что скала - это такой жс на стероидах
Ayrat
а не, правильно
Sergey
Ayrat
не, именно что с дженериков в рантайме надо пересаживаться когда в жвм приходишь
Ayrat
их же именно там и нет
Ayrat
Sergey
Ayrat
я имел в виду что тайпскрипт защищает не прям уж дохуя. гарды в функциях они только для компилятора.
Ну как в F# единицы измерений
Ayrat
т.е. их можно только между F# кодом таскать
Ayrat
в рантайме никаких чеков
Ayrat
если функция принимает только метры, то в рантайме ты можешь туда и сантиметры засунуть изи!
Ayrat
например вызвав эту сборку из C#
Aleksandr
А что, разве в Haskell hkt существует без type erasure?
Ayrat
Ayrat
вместо решетки евро блять
Ayrat
как JVM или .NET
Ayrat
т.е. в жвме-то можно жава либки подтягивать в скалку, может быть обратно тоже
Aleksandr
Ах да, хаскелл нэйтив же
Ayrat
т.е. сборки собранные разными компиляторами работают друг с другом по правилам рантайма
Ayrat
Ayrat
это вообще неважно
Ayrat
мой поинт в том что даже если они намазывают метаинформации вокруг типов то т.к. основной комплиятор один, то стирание типов даже если оно есть, похуй вообще
Ayrat
если б у нас был только F# и ничего кроме, то единицы измерений были бы охуенны, даже со стиранием типов. А так, сишарперам эти сборки не дашь
Sergey
Ayrat
Ayrat
Я кстати хз как ллвм относится к генерикам в своим мире
Анна
по-моему у него IR ниже уровнем, так что какие ещё дженерики. Но я что-то вот залипла, потому что никогда про это не думала
Анна
Ayrat
Doge
Ayrat
В целом, в целом, я считаю скалу хорошим языком. Она делает всё возможное из доступного
Doge
Стреляют обычно другие вещи
Doge
В каждодневной разработке скорее стреляет то, что в джетбрейнс скала плагин разламывают каждый месяц, ну и то, что некоторые сложные случаи при использовании импликитов отлаживать бывает сложно.
Sergey
Andrew
Ребят, как лучше обьединять между собой async и result билдеры?