Ignat
нету
тогда я чего-то не понимаю
Сережа
Это говно из хаскеля, там новые типы через указатели как-то
Ignat
Ignat
Ignat
или вводить баззворды
Ignat
как гулангеры
Ignat
тогда учить сложнее
Vladimir
Короче
Ignat
ну очевидно, ньютайпы плохи тем, что в них постоянно надо упаковывать и распаковывать обратно
Vladimir
Тебе шашечки или ехать?
Сережа
Хаскель тебе в этом не поможет, смекаешь?
Сережа
Бля чо такое ньютайп это синоним существующего типа но как бы новый?
Ignat
вроде того
Ignat
Ignat
в разных местах
Dmitry
Ignat
а так мне придётся каждый раз запаковывать вектор в вектор_в_который_пишется_в_начало
Сережа
Оберни 1 раз в декоратор и работай как диды
Dmitry
а дальше просто значение
Dmitry
как в скалке extends AnyVal
Ignat
ну для этого в хачкеле ньютайп и выделен в отдельное ключевое слово
Dmitry
чтоб не перепутать где у тебя в двух int аргументах был userId а где его visits_count
Ignat
но речь не о рантайме
Ignat
ну не передавай эти инты неявно
Ignat
какие проблемы
Vladimir
короче
Ignat
ты в одной стоке аппелируешь к скалке, а в другой говоришь так, как будто в глаза не видел в ней имплисит параметров
Vladimir
иди в скалу
Vladimir
че ты тут сидишь?
Ignat
интересно, чё там у сверхразумов
Vladimir
нам не лень оборачивать ньютайпы
Vladimir
или реализовывать From где нужно
Ignat
о, я совсем забыл про From
Dmitry
Vladimir
мы не создаем миллион кейвордов для одинакого функционала
Vladimir
до последнего времени, у нас даже явное было во главе
Ignat
при чём тут миллион кейвордов?
Vladimir
ну ты же сам писал на нью тайп кейворд отдельный в вашем хаскеле
Ignat
ну это единственный пример такого дублирования, известный мне
Vladimir
не удивлюсь если для задания неявного тайп параметра тоже в скале какой-то свой синтаксис
Ignat
как тайп параметр может быть неявным?
Vladimir
ты же сам расссказывал что-то про это
Dmitry
[?]
Dmitry
хотя это не "неявный"
Ignat
ты про HKT?
Vladimir
нет, ты говорил про неявные параметры у трейтовв
Ignat
так или иначе, сложность синтаксиса — это явно не та вещь, которую можно предъявить к хачкелю
Vladimir
что там за параметры, если не тайп?
Ignat
а
Ignat
ну можно сделать следующим образом
Ignat
пишешь значит класс writeFromVector
Ignat
который конструируется от вектора и содержит все функции трейта в себе
Ignat
получается то же самое, что имплементировать трейт для вектора, только именованное
Ignat
ну и соответственно можно несколько имплементаций иметь и передавать нужную
Vladimir
чем это отличается от реализации своего нового "типажа"
Vladimir
и его использования вместо стандартного?
Vladimir
объявляешь приватный типаж, наследуешь его от того же врайта
Vladimir
реализуешь для вектора
Vladimir
радуешься тому говну что ты сделал
Ignat
совместимость с чужим кодом?
Vladimir
?
Vladimir
а что с ней?
Vladimir
у тебя ж это говно локально юзается
Ignat
ну есть у меня твоя библиотека с высококачественным руст-кодом
Ignat
я офк хочу её использовать
Ignat
а ты почему-то Write принимаешь
Ignat
а не MyShittyWrite
Vladimir
и?
Vladimir
ну так мне ж наверное лучше знать, что я хочу с этим говном делать
Vladimir
ты же мне даешь вектор а не свое говно
Vladimir
почему я должен с ним работать иначе?
Ignat
ну у тебя функция, которая умеет ЗАПИСЫВАТЬ последовательность байт
Ignat
если ей нужен Write
Ignat
ну а знать, куда мне в вектор надо записать, лучше всё же мне
Vladimir
давай начем с того
Vladimir
что если тебе лучше знать, куда в вектор записать
Vladimir
то у тебя уже не вектор в чистом виде
Vladimir
а своё говно