#prog #article
Для облегчения симптомов синдрома самозванца: "Я выпустил текстовый процессор, форматировавший жёсткий диск после каждого 1024-го сохранения".
Оригинал (в виде треда в твиттере, так что читать не очень удобно)
Перевод на Хабре
Для облегчения симптомов синдрома самозванца: "Я выпустил текстовый процессор, форматировавший жёсткий диск после каждого 1024-го сохранения".
Оригинал (в виде треда в твиттере, так что читать не очень удобно)
Перевод на Хабре
#prog #rust #rustlib
Иногда бывает полезным не использовать порядок, определённый на типе при помощи Ord, а использовать порядок, заданный некой внешней сущностью. Крейт comparator даёт интерфейс
Как известно, куча из std Rust является максимальной кучей, т. е. на вершине лежит максимальный элемент. Для того, чтобы сделать минимальную кучу, приходится оборачивать элементы в
comparator на crates.io
Документация
Иногда бывает полезным не использовать порядок, определённый на типе при помощи Ord, а использовать порядок, заданный некой внешней сущностью. Крейт comparator даёт интерфейс
Comparator<T>
с методом compare(&self , &T, &T) -> Ordering
. Само по себе это не очень интересно, но на базе этой абстракции можно построить уже непосредственно полезные сущности. В частности — то, что предоставляет сам крейт, бинарную кучу с порядком на элементах, заданных компаратором.Как известно, куча из std Rust является максимальной кучей, т. е. на вершине лежит максимальный элемент. Для того, чтобы сделать минимальную кучу, приходится оборачивать элементы в
std::cmp::Reverse
. Это не только не очень удобно, но и лишает возможности за константное время превратить кучу в вектор. В случае с кучей из comparator такой проблемы не возникает, потому что можно легко сделать кучу с обратным порядком:use comparator::reverse_order;К сожалению, это, в сущности, всё, что есть в comparator, а последнее обновление было год назад. С другой стороны, даже в текущем виде крейт полезен, поэтому я и решил о нём рассказать.
use comparator::collections::BinaryHeap;
let mut heap = BinaryHeap::with_comparator(reverse_order());
comparator на crates.io
Документация
Forwarded from rusta::mann
Сегодня написал на автомате
make_unique::<Name>()
на C++, и долго не мог понять почему компилятор кричит что-то про неймспейсы на турборыбу.Forwarded from xor eax, eax
Как раст ходит по типам в данном случае?
trait SomeType {}
struct Test<T: ?Sized>(core::marker::PhantomData<T>);
impl<T: ?Sized + SomeType> Test<T> {
const FOO: bool = true;
}
trait Fallback {
const FOO: bool = false;
}
impl<T: ?Sized> Fallback for T {}
Test::<$ty>::FOO
trait SomeType {}
struct Test<T: ?Sized>(core::marker::PhantomData<T>);
impl<T: ?Sized + SomeType> Test<T> {
const FOO: bool = true;
}
trait Fallback {
const FOO: bool = false;
}
impl<T: ?Sized> Fallback for T {}
Test::<$ty>::FOO
#prog #rust #rustreleasenotes #politota
Выпущена новая версия Rust: 1.44.0! Изменений не так много, самое значимое —
Блогопост
Подробные заметки о релизе
Выпущена новая версия Rust: 1.44.0! Изменений не так много, самое значимое —
asycn/await
более не требует thread-local storage и потому может быть использован в #[no_std]
. К сожалению, ввиду недавних событий в США, а также мнения Rust core team, что "tech is and always will be political", внятного описания новых фич в блогопосте нет, так что лучше сразу раздел в RELEASES.md открыть.Блогопост
Подробные заметки о релизе
blog.rust-lang.org
Announcing Rust 1.44.0 | Rust Blog
Empowering everyone to build reliable and efficient software.
Блог*
#prog #rust #python #article Насколько далеко можно зайти в поддержке кода на Python внутри Rust? Достаточно далеко, чтобы заставить IDE подсвечивать ошибки в коде на Python. https://blog.m-ou.se/writing-python-inside-rust-3/
#prog #rust #python #rustlib #amazingopensource
Следующий логический шаг: макрос ct_python, который на этапе компиляции выполняет заданный код на Python и раскрывается в вывод в stdout этого скрипта.
Презентация возможностей
Документация
Следующий логический шаг: макрос ct_python, который на этапе компиляции выполняет заданный код на Python и раскрывается в вывод в stdout этого скрипта.
Презентация возможностей
Документация
Twitter
Mara Bos
If you ever wanted to generate Rust code using Python within your Rust, look no further! Next to inline-python, there's now also a ct_python macro, which executes Python code at compile time and inserts the output as Rust code back into your program.✨docs.rs/ct…
Forwarded from Dr. Friedrich von Never
А мне название нравится. Сразу видно, что преимущества сразу двух языков.
#prog #c #abnormalprogramming
Крестики-нолики, упакованные в вызов printf в цикле.
github.com/carlini/printf-tac-toe
Крестики-нолики, упакованные в вызов printf в цикле.
github.com/carlini/printf-tac-toe
GitHub
GitHub - carlini/printf-tac-toe: tic-tac-toe in a single call to printf
tic-tac-toe in a single call to printf. Contribute to carlini/printf-tac-toe development by creating an account on GitHub.
👍1
Forwarded from Matwey Kornilov
В итоге вчера тренировал случайный лес с максимальной глубиной в 200 слоев и 3 деревьями