172 похожих чатов

И у меня возник вопрос - нахрена ты пользуешься этим?

ты хочешь создать Then<Then<Then<Then<A, B>, C>, D>, G>, F>

29 ответов

21 просмотр

Именно. Через then функции одноразово создается компаратор, который и будет сортировать.

Dmytro-Polunin Автор вопроса
EvGem
Именно. Через then функции одноразово создается ко...

как выглядит твой компаратор, который ты возвращаешь из Compare::compare()?

Dmytro-Polunin Автор вопроса
EvGem
Именно. Через then функции одноразово создается ко...

я до сих пор не понимаю что ты хочешь со своим кодом сделать, поэтому не могу нормальное решение посоветовать

Dmytro Polunin
как выглядит твой компаратор, который ты возвращае...

Не понял вопроса. Я пока не приступал к реализации компараторов. Ведь на более высоком уровне абстракции застрял)

Dmytro-Polunin Автор вопроса
EvGem
Не понял вопроса. Я пока не приступал к реализации...

я правильно понял, что ты хочешь иметь некий векторов компараторов и сортировать другой вектор итемов согласно этому вектору компараторов?

Dmytro Polunin
я правильно понял, что ты хочешь иметь некий векто...

Да. Первый компаратор сортирует. Если он вернул Equal, то сортирует следующий в списке и т.д. Такое поведение и реализует then.

Dmytro-Polunin Автор вопроса
EvGem
Да. Первый компаратор сортирует. Если он вернул Eq...

сколько планируется иметь компараторов?

Roman
растбук прочитал?

Не всю. Мне теперь стыдно, хотя не уверен, что нашел бы там ответ на свой вопрос. "Как переходить от java мышления к rust".

Dmytro-Polunin Автор вопроса
EvGem
Неизвестно.

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=de1df730da924bafcf76a5026060e5f9 обобщенный пример

EvGem
Не всю. Мне теперь стыдно, хотя не уверен, что наш...

решать задачи, читать код, писать код. всё как всегда. 🙂

Roman
растбук прочитал?

первые 16 глав из 21 (кроме 10, 11, 14)

Dmytro Polunin
https://play.rust-lang.org/?version=stable&mode=de...

ох, а я думал глиста кинешь)

Dmytro-Polunin Автор вопроса
Kai Ren
ох, а я думал глиста кинешь)

новичкам с джавы лучше глисты не показывать, хотя руки чесались конечно

Dmytro Polunin
новичкам с джавы лучше глисты не показывать, хотя ...

я когда-то пришёл из питона и плюсов и решил написать generic для двоичного поиска кажись. ох как же мне было больно с типами. и компилятор-то был ещё со всем не тот что сейчас (со ссылками прям).

Dmytro-Polunin Автор вопроса
EvGem
Не всю. Мне теперь стыдно, хотя не уверен, что наш...

на будущее: крейты с последним апдейтом меньше чем год-два юзать с крайней осторожностью

Dmytro Polunin
https://play.rust-lang.org/?version=stable&mode=de...

Спасибо, должно работать. Но это решение сводится к отказу от удобства then. Ты по сути написал then сам. Если бы then был бы намного сложнее пришлось бы намного хуже. Оффтоп: Заинтриговали, что за глисты? xD

Dmytro-Polunin Автор вопроса
Dmytro-Polunin Автор вопроса
Dmytro Polunin
хочешь я тебе на then напишу

давай-ка напишу, а ты потом сравнишь, и скажешь, что больше понравилось

Dmytro-Polunin Автор вопроса
EvGem
Если не затруднит

у тебя трейт Sortable супер странный. Это фабрика компараторов с каким-то входным значением для создания компаратора который сравнивает фабрики компараторов. в таком виде твой код просто не имеет смысла так что не буду then делать

Dmytro Polunin
у тебя трейт Sortable супер странный. Это фабрика ...

Не делай, не хочу чтобы тратил свое время зря) Но код смысл имеет. Компараторы сравнивают не фабрики компаратов, а тех, кто реализует Sortable. То есть смысл в том, что структуры/енамы(как это одним словом назвать? класс?), реализующие Sortable, могут быть многоуровнево отсортированы с помощью списка SortType. И вот этот "класс", реализующий Sortable, должен уметь предоставлять компаратор для любого SortType. Это прикольно кстати, что в трейте можно прописать "статический метод", то есть не принимающий self. В джаве нельзя.

EvGem
Не делай, не хочу чтобы тратил свое время зря) Но ...

Ну вот для таких случаев в Расте действительно часто любят использовать те самые глисты. Это получается, по сути, interpretation pattern, где код, требующий список компараторов - это тот самый некий интерпретатор, а глист состоящий, собственно, из разных компараторов - это “инструкции” к интерпретации.

Kai Ren
Ну вот для таких случаев в Расте действительно час...

Да уж, придумал себе задачу параллельно читая растбук. Пришел неявно к глистам) Но и глисты не совсем подходят. По задумке размер списка инструкций неизвестен на этапе компиляции. То есть я хотел в рантайме через cli задавать по чем сортировать.

EvGem
Да уж, придумал себе задачу параллельно читая раст...

Здесь больше важен не размер списка, а то знаешь ты все типы компараторов сразу, или нет. Если да - то вместо Vec<Box<dyn Comparator>> можно юзать Vec<ComparatorsEnum>, где все их и перечислить.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта