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