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

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

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

29 ответов

6 просмотров

Именно. Через 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>, где все их и перечислить.

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

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

Комрады, посоветуйте, куда копать? Стал прикручивать кастомизацию тем. В OnShow главной главной формы пытаюсь загрузить из файла настроек и применить тему (на скрине, как долж...
Ed Doc
13
OnShow один раз вызывается? или возможен Hide?
Iluha Companets
14
Такс, блин, таки кто-то знает, каким образом работают макросы stdin/stdout/stderr? Я влез в stdio.h, там определения нет, отладил через асмокод - вызывается функция со странны...
The Bird of Hermes
18
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Всем привет, на линуксе лучше на fasm или nasm учиться писать для начала ?
meszjol
14
Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
Гайз, кто-нибудь пробовал запустить probe-rs под камень, которого нет в probe-rs? Мб есть какой-нибудь пример у кого... Через target-gen попробовал сгенерировать chip-descript...
Максим Смирнов
2
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
@sand_witch скорее к тебе вопрос, добавил в .cabal webdriver-w3c и вот такая ошибка от nix develop error: Package ‘script-monad-0.0.4’ in /nix/store/7vdxbra0kwbr0ys0kc5...
Fedor
5
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
Карта сайта