Как известно, выполнение программы, написанной на D, всегда начинается с процедуры main.
А что если хочется ее заменить своей процедурой? Читать далее
Как известно, выполнение программы, написанной на D, всегда начинается с процедуры main.
А что если хочется ее заменить своей процедурой? Читать далее
В этот раз статья будет очень маленькой, т.к. я просто немного расскажу о том, как используя стандартную библиотеку D, вывести время выполнения интересующей процедуры или функции в любых интересующих вас временных единицах.
Казалось бы в одной из статей мы уже расставили все точки над “ё”, однако, не тут было, так как к нам пришла внезапная идея…
Дело в том, что довольно часто приходиться работать с массивами, причем, массивами статическими (т.е. массивами уже заданной размерности), и очень хочется хоть немного комфорта. Иногда, впрочем, встречаются и такие задачи, от которых, так и хочется, реализовать по своему часть функционала (или выпилить лишний) – вот тогда и приходиться решаться на крайности, например, решить проблему с динамическим созданием статического массива нужного размера.
Довольно часто встречается задача поиска уникальных элементов в массивах или каких-то иных последовательностях данных со схожим интерфейсом доступа и казалось бы тут не должно быть проблем, особенно, если учесть тот факт, что в Phobos в модуле std.algorithm есть такая замечательная вещь, как uniq, но… Читать далее
В одном из проектов для D Form Library я столкнулся с небольшой проблемкой: необходимо было сделать рисунок в окне, но с использованием окраски «в старом стиле» (т.е. использовать не палитру RGB, а иную, более упрощенную, с меньшим количеством параметров). Это была даже не задача, поскольку думать пришлось совсем немного, однако, недостаточное количество информации чуть не погубило задумку проекта – требовалось нарисовать двумерное изображение с использованием палитры в 256 цветов (она же, если не ошибаюсь, BGR), но DFL позволяет рисовать в окне с использованием палитры RGB и описания механизма преобразования RGB в BGR почти отсутствуют… Читать далее
Программисты на Python знают, что у строк в этом замечательном языке программирования есть интересный метод join, который, если мне не изменяет память, получая на вход список данных и разделитель, склеивает эти данные, объединяя их через переданный разделитель. Однако, поиски по стандартной библиотеке D не позволили найти аналог для такого метода (хотя возможно, я плохо искал) – и пришлось выкручиваться самому, ведь мне очень нужна функция, похожая по поведению на метод join. Читать далее
В этой статье покажу Вам небольшой “трюк” для вставки свойств в классы и структуры.
Работает это примерно так: формируется строка (из переданных аргументов – тип для значения свойства и имя свойства, а также из собственно, объявления приватной переменной и объявления самого свойства) с описанием методов установки/считывания свойства и помещается в константный массив символов – и все, шаблон готов к использованию. Читать далее
В этом небольшом посте, я выкладываю тривиальные реализации различных методов сортировки массивов с разными типами данных. Все предложенные способы сортируют массивы по возрастанию (хотя, очень легко сделать так, чтобы весь код стал универсальным: допустим, можно слегка модифицировать листинги таким образом, чтобы каждая из функций сортировки принимала на вход еще и операцию, с помощью которой будет выполнено упорядочивание).
Однажды, от нечего делать, я решил попробовать реализовать какой-нибудь интересный алгоритм из области вычислительной математики, уж очень хотелось совместить бесполезное с познавательным, а заодно хоть как-то привыкнуть к новому (на тот момент) для себя языку программирования (который еще и достаточно низкоуровневый, несмотря на некоторые вольности).