Oleg
но, да версия с итераторами повсюду лучше всего по памяти сработала
Sergey
iDeBugger
Oleg
очень очень быстрый репост
Sergey
и во все чаты
Oleg
а вот скажите, у меня в нескольких местах используется
where
T:FromStr
T::Err: Debug,
Oleg
я хочу для этого сделать алиас
Oleg
пишу
trait UParse: FromStr + Err:Debug{
}
Oleg
естественно, синтаксис невалидный.
Вопрос - как в требованиях трейта указать требования для типа из одного из требований?
Oleg
Я конечно, сделал проще
Anonymous
Oleg
Oleg
Я только в хачкеле знаю, как
Anonymous
и как там?
Oleg
ну
class (FromStr x, Debug (Err x)) => Uparse x where
Oleg
понятно, что таких ТС там нет, но выглядело бы похожим, реквайрменты на тайп-фэмили можно ставить
Oleg
ну или если фундепы, то
class (FromStr x, Debug e) => Uparse x e| x -> e
Влод
Влод
вроде такой и есть синтаксис через +
Oleg
Oleg
127 | trait UParse: FromStr + Err: Debug{
| ^ expected one of `(`, `+`, `::`, `<`, `where`, or `{` here
Влод
ну и к тому же require на несколько трейтов - вроде должно быть базовой функциональностью
Oleg
Влод
https://github.com/search?p=3&q=%22Err%3ADebug%22+language%3ARust&type=Code&utf8=%E2%9C%93
кажется и правда невозможно
Oleg
т.е. в скаловских (не доттивских) терминах Err - это type member FromStr
Danila Matveev
<Err=Debug> это и есть для ассоцированных типов
Oleg
Oleg
ну всё равно мне же не приравнять
Danila Matveev
проверил, там другая трабла с Sized вылезает
Oleg
а условие наложить
Danila Matveev
trait UParse<T>: FromStr<Err=T>{}
Alex
чем это плохо?
Danila Matveev
а условие наложить
так trait UParse: FromStr<Err=Debug>{} и есть по идее нужный синоним (если с Sized решить проблему)
Oleg
Oleg
Debug - это trait
Oleg
ты не накладываешь в этом месте на Err ограничение
Oleg
а приравниваешь его какому-то непонятному типу
Oleg
чем это плохо?
ну это значит, что я потенциально могу сделать много реализаций для UParse и компилятору нужно будет знать тип параметрв заранее, чтобы искать среди них (даже если она одна)
Danila Matveev
trait UParse<T: Debug + IntoIterator>: FromStr<Err=T> {}
Danila Matveev
если нужны какие-то ограничения, то вместо них все равно надо что-то подставить в явном типе
параметр какой-то нужен
Loyd
Loyd
По сабжу: trait alias будут в следующей версии
Oleg
Oleg
я просто забил на этот реквайрмент, мне кажется так и надо было
Oleg
просто сделал правильный инстанс
Loyd
Loyd
https://github.com/rust-lang/rfcs/pull/1733
Loyd
Хотя не стану утверждать, что в рамках него реализуем сабж
Oleg
Loyd
Да помню я где ты
Loyd
acm вообще убог весь в плане подготовки реальных программистов
Ilya
Маjко
И сама специфика acm не имеет ничего общего с разработкой ПО
Loyd
какие ваши доказательства?
А как ты представляешь доказательную базу? Вот я n человек прособеседовал и с m программистами знаком, из который s так или иначе занимались acm или схожим (очевидно, не берём во внимание ICFPC, это боги, тут не спорим)
Loyd
Так вот к проектированию чего-либо я бы не допускал их
Loyd
Субъективно всё, конечно. Но другого не имеем, увы
Ilya
а какого уровня олимпиадники были?
Alex
(хотя лично у меня есть и противоположные наблюдения)
Ilya
ой, ну я ждал, когда эту ссылку запостят
Loyd
Ну чего ты разжигаешь столетний холивар?
Ilya
причина этой корреляции совершенно понятна же: гугл использует олимпидные задачки для собеседования, поэтому для профессиональных олимпиадников их прохождение не показатель ничего
Loyd
У каждого свой опыт. Из своего опыта делаю вывод, что сеньоров-олимпиадников я не знаю (ВРУ, знаю одного). Может выборка плохая, может вот просто неповезло. Пофиг
Alex
вот ещё псевдоматана на тему — http://lesswrong.com/lw/km6/why_the_tails_come_apart/
Ilya
потому что я бывший олимпиадник, и мне неприятно, когда пишут безаппеляционную хуйню; я сам (слава богу) не программист, но вот мои сокомандники — совершенно замечательные программисты, компании на них молятся, один — руководитель большой группы в Яндексе
Loyd
Loyd
Ну и да, руководитель группы в яндексе это не технический путь, а менеджерский. Технический — те же самые 4+ грейды, но эксперты
Ilya
а ты из Яндекса?
Loyd
Ilya
Ок, нет проблем
Loyd
Ну и да, это всё тредофф. Давайте к расту )
Roman
Все мои знакомые acm'щики имеют весьма неплохой уровень.
Loyd