Ignat
Ньютайпы и в хачкеле есть, это не очень удобно
Сережа
#define true false
Vladimir
Ньютайпы и в хачкеле есть, это не очень удобно
а что если ты переопределишь реализацию для вектора байт, а кто-то из соседней либы тоже переопределит, какую из трех реализаций юзать?
Ignat
Должен быть способ указать
Ignat
В скале для этого неявные параметры
Vladimir
ну заводи явный параметр
Сережа
Паттерн проектирования декоратор
Ignat
Кайф
Vladimir
еще б неявные параметры тут блин привезли, такого говна еще не было
Сережа
Решает твою проблему, в Джаве все придумали
Ignat
Спасибо конечно
պլհկ
рады помочь
Сережа
Не за что, почитай Ганг оф фор, паттерны проектирования
Vladimir
видимо джава лучше раста
Ignat
Нет, речь о том, что хочется более удобного решения
Vladimir
его нет
Vladimir
вон тебе перечислили всё возможное. Нью тайпы/определять типаж с инпат параметром
Ignat
значит, в этом отношении руст хорош/плох ровно настолько же, насколько и хачкель
Vladimir
а чем они плохи?
явное лучше неявного
A64m
а в расте ньютайпы есть?
Vladimir
нету
Сережа
В расте много базвордов
Anonymous
из хаскеля-то только трейты были взяты
Ignat
ну в явном виде, наверное, да
Ignat
но влияние-то на умы разработчиков оказано колоссальное!!1
A64m
сомнительно
Ignat
явное лучше неявного
довольно глупая догма
Евгений
Разработики руста упоротые ml'исиы
Ignat
Разработики руста упоротые ml'исиы
ну да, звучит правдоподобно
Евгений
довольно глупая догма
Довольно неявная догма xD
Ignat
может, и абстракции вообще не нужны, раз непонятно, во что оно развернётся уровнем ниже?
Евгений
Эм, наличие абстракции не тождественно непонятности её развертывания
Ignat
ну в смысле уровнем ниже может быть много что, как правило
Ignat
иначе непонятен смысл абстракции
Vladimir
абстракция нужна, чтобы переиспользовать код
Vladimir
а не для того чтобы было непонятно во что развернется
Vladimir
ты со своим хаскелем вообще поехавший наверное
Ignat
офк
Ignat
ладно, давай по-другому
Евгений
ну в смысле уровнем ниже может быть много что, как правило
Непонятность может возникнуть только из "динамичности", т.е. когда работа какой-то подсистемы сильно зависит от контекста. Например в случае gc его киллер-фича в том, что мы можем воспользоваться информацией о том как часто вызывается какой-то кусок кода и очищать/не очищать исходя из этого памятт
Ignat
ведь бремя доказательства лежит на утверждающем, а не наоборот
Vladimir
почему?
Да боже мой, это общий постулат, есть и обратный ему, и у того и у другого есть плюсы и недостатки
Ignat
то есть в твоей логике одновременно явное лучше неявного и неявное лучше явного?
Vladimir
Для разных случаев да
Vladimir
Потому что не все так просто, хаскеле воин
Ignat
ну не я цитирую петухон-догмы
Ignat
в которых неявная квантификация всеобщности
Ignat
и фраза «явное иногда бывает лучше неявного» никак не отвечает на вопрос о том, чем плохи неявные параметры
Vladimir
А чем они хороши?
Vladimir
Я их в глаза не видел
Vladimir
Сорян
Сережа
Тем что о них надо всегда явно помнить?
Ignat
тем, что через них выражаются: — трейты в рустовом смысле, которые при этом могут быть именованными и соответственно иметь несколько реализаций — экстеншон-методы — депенденси инжекшон
Ignat
возможно, что-то ещё
Ignat
Тем что о них надо всегда явно помнить?
ну никто же не заставляет тебя их через строчку писать
Ignat
компилятор даст по рукам, если что-то не так, как и со всем остальным
Vladimir
Т.е. по твоему, то что в отрыве от контекста строку будет сложнее распознать, это норма?
Сережа
Если трейту требуется несколько реализаций это протекающая абстракция
Ignat
ну с концепцией аппликативных функторов ты, скорее всего, незнаком
Ignat
в контексте руста мне сложно, к сожалению, придумать пример сложнее, чем с вектором, в который можно по-разному писать
Сережа
Это когда из функции с 2 аргументами делают функцию с 1 что ли?
Ignat
нет
Vladimir
в контексте руста мне сложно, к сожалению, придумать пример сложнее, чем с вектором, в который можно по-разному писать
Ты создаёшь некий свой буффер, в том примереч почему там Нью тайпы не применимы?
Сережа
Тогда это не нужно
Ignat
но, казалось бы, вполне даёт понимание того, что для одного типа бывает несколько разумных реализаций одного и того же трейта
Сережа
Ты мне ещё про ваши моноиды расскажи
Ignat
> наши
Ignat
мб и числа хачкелисты придумали?
Ignat
я так и не понял, ньютайпы в расте есть или всё-таки нет?
Vladimir
Есть конечно
Сережа
Ты объясни что такое ньютайпы
Vladimir
Структуры ж есть
Vladimir
А что такое Нью тайп?
Сережа
Это структуру объявить?
Vladimir
Структура с одним полем