Писал длинный пост со своим затыком.
Предугадывал ваши вопросы и отвечал на них.
Пока отвечал, нашел решение.
Всем спасибо.
Предугадывал ваши вопросы и отвечал на них.
Пока отвечал, нашел решение.
Всем спасибо.
🔥16❤5👍2😁2
Придумал забавный способ передать список из разных типов в функцию.
При этом трейт должен быть конкретный, для задачи, что бы в
В чем тут прикол, ведь так список как бы бесконечный получается, раз
В том то и дело, что с точки зрения типов - да, бесконечный.
Только в конце списка
Сам
То есть это бесконечный список типов, бесконечный хвост которого - пустота.
А
Функция, в которую передали такой список может продолжать делать
Ограничение этой конструкции в том, что функция не может делать
Ссылка на playground с демонстрацией идеи
https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=82105fbaa8d370dec34f00a5900793df
trait List {
type Head;
type Tail: List;
fn split(self) -> (Self::Head, Option<Self::Tail>);
}При этом трейт должен быть конкретный, для задачи, что бы в
Head добавить нужный баунд.В чем тут прикол, ведь так список как бы бесконечный получается, раз
Head всегда есть?В том то и дело, что с точки зрения типов - да, бесконечный.
Только в конце списка
Tail = Void, а у Void уже оба Head = Void и Tail = Void.Сам
Void это очевидно enum Void {}, который реализует любые нужный трейты.То есть это бесконечный список типов, бесконечный хвост которого - пустота.
А
List::split просто вернет None хвост в "рантайме".Функция, в которую передали такой список может продолжать делать
split, пока хвост - Some(tail).Ограничение этой конструкции в том, что функция не может делать
split в цикле, там же разные типы. Так что она либо делает это рекурсивно, либо фиксированное максимальное количество раз в теле.Ссылка на playground с демонстрацией идеи
https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=82105fbaa8d370dec34f00a5900793df
play.rust-lang.org
Rust Playground
A browser interface to the Rust compiler to experiment with the language
Вопросы, которыми я никогда раньше не задавался, но вот случилось:
Как упорядочит 3д вектора так, что бы разница между соседними элементами имела наименьшую энтропию?
Как упорядочит 3д вектора так, что бы разница между соседними элементами имела наименьшую энтропию?
В новой квартире в люстре спальни обнаружилась встроенная блютусная колонка.
Нашёл, случайно подключившись, а она пиликнула.
Вопрос: ЗАЧЕМ?
Нашёл, случайно подключившись, а она пиликнула.
Вопрос: ЗАЧЕМ?
😁15
Я попросил ИИ реализовать алгоритм для задачи, для которой брут-форс имеет сложность O(N!), но точно даёт оптимальный результат.
ИИ превзошел все мои ожидания и сделал алгоритм сложностью O( (N^2)! )
ИИ превзошел все мои ожидания и сделал алгоритм сложностью O( (N^2)! )
😁24🔥6❤3🤮1
Читал про японские числительные.
Там нашлась забавная сноска по произношению
Там нашлась забавная сноска по произношению
"Хяку" превращается в "Бяку" из-за рэндаку
😁14
Размышлял про Fullmetal Alchemist и до меня только сейчас дошло, что философский камень это метафора эксплуатации труда.
Как говорится, I was today years old.
Как говорится, I was today years old.
❤2