Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Картиночная рекурсия

Чулан
Думал как это назвать, но в силу своей программистской направленности ничего другого не пришло в голову, по своей сути — бесконечно вложенные друг в друга картинки.

interact10ways.com/usa/information_interactive.htm

UPD: Осторожно! Затягивает и может потратить много полезного времени :-)
Всего голосов 10: ↑6 и ↓4 +2
Просмотры 280
Комментарии 8

Рекурсия в авторском праве

Чулан
Если бы знак защиты авторского права использовался для защиты самого знака защиты авторского права:

© ©©©©©©©© 1790 U.S. Congress 1790 U.S. Congress 1790 U.S. Congress 1790 U.S. Congress 1790 U.S. Congress 1790 U.S. Congress 1790 U.S. Congress 1790 U.S. Congress
Всего голосов 98: ↑70 и ↓28 +42
Просмотры 296
Комментарии 31

Рекурсивные SQL запросы

SQL *
Рекурсивны SQL запросы являются одним из способов решения проблемы дерева и других проблем, требующих рекурсивную обработку. Они были добавлены в стандарт SQL 99. До этого они уже существовали в Oracle. Несмотря на то, что стандарт вышел так давно, реализации запоздали. Например, в MS SQL они появились только в 2005-ом сервере.
Читать дальше →
Всего голосов 37: ↑35 и ↓2 +33
Просмотры 122K
Комментарии 51

Иерархические (рекурсивные) запросы

SQL *
Дерево объектов

Чтобы понять рекурсию, сначала надо понять рекурсию. Возможно, поэтому рекурсивные запросы применяют так редко. Наверняка вы представляете что такое SQL-запрос, я расскажу, чем рекурсивные запросы отличаются от обычных. Тема получилась объемная, приготовьтесь к долгому чтению. В основном речь пойдет об Oracle, но упоминаются и другие СУБД.

Читать дальше →
Всего голосов 108: ↑103 и ↓5 +98
Просмотры 409K
Комментарии 159

Древовидные СУБД

Чулан
Приглашаются к обсуждению все, имеющие опыт использования, в качестве хранилища данных, древовидных СУБД. Было бы полезно делится опытом разработки древовидных структур, описанием конкретики построения дерева индексов и алгоритмов полнотекстового поиска информации внутри хранилища данных.

Поскольку любая компьютерная система с целью оптимизации обмена производит обмен между памятью и диском в виде блоков, то атомарным элементом, хранящим данные на диске, является блок. Ни для кого не секрет, что многие СУБД (тот же ORACLE и MSSQL) фактически хранят данные в Б-деревьях. Б-дерево – это набор логически связанных блоков, выстроенных в иерархию, на каждом уровне которой определены блоки, у каждого из которых одинаковое количество уровней потомков. Описание алгоритма работы Б-дерева выходит за рамки данного блога.

Реляционный, объектный или прямой доступ обеспечивается логической моделью. Попробую предположить, что разумное использование логической модели данных, максимально приближенной к фактическому хранению – позволит более просто и быстро обрабатывать низкоуровневые данные, чем использование других логических моделей(SQL и пр.), хотя и существенно повышаются требования к уровню разработки механизмов доступа к данным. Возможно, что прямой доступ может быть представлен логическим деревом. Примером логического дерева данных – является глобал в СУБД Cache.

Приведу несколько примеров использования, из личного опыта, древовидных структур данных (глобалов).
Читать дальше
Всего голосов 19: ↑12 и ↓7 +5
Просмотры 1.5K
Комментарии 24

10 приемов, разрушающих хрупкую красоту кода

Разработка веб-сайтов *
Статья приводится в сокращении из-за ограничения на объем материала.

Для меня программирование — это не только технология, но и, во многом — искусство. И, поэтому, большое значение имеет красота кода.

Последние несколько лет я собирал приемы программирования, разрушающие в программном коде его утонченную красоту:
  1. Объявление всех переменных в начале программы;
  2. Возврат результата функции через ее параметр;
  3. Отсутствие локальных функций;
  4. Отсутствие else if;
  5. Использование параллельных массивов;
  6. Хранение размера массива в отдельной переменной;
  7. Доступ к свойствам объекта через obj.getProperty() и obj.setProperty(value);
  8. Использование рекурсии для вычисления факториалов и Чисел Фибоначчи;
  9. Отсутствие именованных параметров функции;
  10. Невозможность объявления объектов «на лету».
Наверняка, в некоторых местах вы будете со мной несогласны — ведь чувство красоты у всех разное.


Объявление всех переменных в начале программы


В двух словах:

Переменные должны объявляться в начале логического блока, в котором они используются, а НЕ в начале функции или программы.


Читать дальше →
Всего голосов 402: ↑324 и ↓78 +246
Просмотры 94K
Комментарии 411

Получение дерева уникальных элементов при помощи цепочного преобразования

XSLT *
Многие ругают xslt за его ресурсоемкость, некрасивость, негибкость, сложность…да много за что еще, наверное, его ругают. Как раз для тех, кто ругает его по последним трем пунктам я и написала данный пост.

Этот пост признан компенсировать пробел в ваших знаниях и представить xslt во всей его красоте.

Недавно передо мной встала задача написать скрипт, который бы из исходного xml получал xml, состоящий только из уникальных элементов. Об исходном файле ничего заранее не известно, абсолютно ничего.
Читать дальше →
Всего голосов 30: ↑26 и ↓4 +22
Просмотры 2.1K
Комментарии 16

Рекурсивные (Иерархические) запросы в PostgreSQL

PostgreSQL *
Вслед за Ораклом со своим ‘connet by prior ‘ все остальные СУБД вводят свои реализации иерархических запросов (ИЗ). Хотелось бы рассказать широкой аудитории как это сделано в PostgreSQL.
читать далее
Всего голосов 48: ↑46 и ↓2 +44
Просмотры 49K
Комментарии 10

Рекурсивное программирование на ЛИСП – решатель формул

Чулан
Решатель формул сам по себе очень интересная тренировка, и в определённый момент эта тренировка может очень пригодиться в другой задаче – конструировании новой формулы, автоматической её проверке (погрешность, просчёт значений по списку координат)… И excel вам не поможет, да и неспортивно.

ЛИСП-код
Всего голосов 18: ↑16 и ↓2 +14
Просмотры 392
Комментарии 10

Рекурсия от Google

Чулан
Обнаружил очень забавный баг у Google, не смог удержаться и делюсь им с вами.

1) Заходим на страницу Google для мобильных устройств с компьютера.
2) Нажимаем на ссылку «Карты» в меню.
3) Наслаждаемся рекурсией.

На неё ведёт и довольно популярная, но старая ссылка google.com/gmm/.

P.S. Баг виден не у всех пользователей. Возможно это из-за того что google перенаправляет вас на страницу Google for Mobile для вашего региона (добавляет в ссылку /intl/ru/ и т.д.).
P.P.S. Проверял в Chrome 4 и IE8.
Всего голосов 34: ↑26 и ↓8 +18
Просмотры 1.7K
Комментарии 22

Жемчужины функционального программирования: рисуем деревья

Программирование *
В этой статье я собираюсь поведать читателям о рисовании деревьев. Нет, не тех деревьев, которые растут из почвы и в которых селятся белки. Сегодня мы будем визуализировать деревья как структуры данных. Данная статья написана по мотивам статьи Andrew Kennedy «Functional Pearls: Drawing Trees» из журнала Journal of Functional Programming, 6(3): 527-534, Cambridge University Press, May 1996 (электронная версия статьи тут), и является, в некотором роде, её переводом.
Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Просмотры 4.1K
Комментарии 3

Кэш Google: рекурсия

Чулан

Chrome не может открыть страницу, предлагает загрузить кэшированную копию. Однако и копия не открывается, и просит открыть кэшированную копию…
Всего голосов 88: ↑53 и ↓35 +18
Просмотры 348
Комментарии 14

Предотвращение рекурсии и ленивые вычисления в Java

Программирование *
Из песочницы
Не так давно, я написал небольшой класс для автоматического кэширования и обновления произвольных значений. Пользоваться им было очень легко — стоило лишь создать анонимный класс с перегруженным методом update, а потом, когда нужно, вызывать функции для пометки значения устаревшим и для получения самого значения:
Читать дальше →
Всего голосов 47: ↑38 и ↓9 +29
Просмотры 4.4K
Комментарии 38

Рекурсивный zip-архив

Ненормальное программирование *
Перевод
Многие хабрапользователи наверняка знакомы с квайнами — программами, выводящими собственный исходный код. Сегодня я хочу показать как сделать интересный вариант квайна — ZIP-архив, который распаковывается сам в себя.

Читать дальше →
Всего голосов 171: ↑168 и ↓3 +165
Просмотры 37K
Комментарии 55

Распознавание рукописных математических выражений

Алгоритмы *
Здравствуй, Хабр!

В этой статье я хочу поделиться опытом распознавания рукописных математических выражений. Хотя уже и существуют такие средства распознавания рукописных формул как «Панель математического ввода» mip.exe в Windows7, разнообразие подходов к решению данной проблемы не может не впечатлять. Об одном из таких подходов я и собираюсь рассказать.




Читать дальше →
Всего голосов 237: ↑232 и ↓5 +227
Просмотры 18K
Комментарии 77

Список списков списков

Краудсорсинг
Тематические списки — это легендарная особенность Википедии. Чего там только нет: список драконов и список интегралов, список научных пар и список солнечных затмений, видимых с Украины.

Этих списков тысячи, некоторые из них — даже списки других списков. Но сейчас Википедия вышла но новую степень просветления: в оглавлении появился список списков списков. Что замечательно, он содержит не только разные списки списков, но также самого себя.



(Отдельно ведётся список списков, которые не содержат самих себя). Похоже, ещё немного — и Википедия познает нирвану.
Всего голосов 118: ↑96 и ↓22 +74
Просмотры 3K
Комментарии 30

Рекурсивные функции — создание собственной математики (Scala)

Ненормальное программирование *Алгоритмы *Scala *
Из песочницы
Добрый день, Хабр!

Столь претензионным заголовком я хочу начать статью про одну из многих моделей исчисления (Computational model) — рекурсивные функции. В первой части этого поста мы разберем (в кратце, ибо подробно все расписано на Википедии) теоретическую составляющую этой модели (примитивная рекурсия), во второй же половине мы попробуем претворить данную модель в жизнь (частично) с помощью языка Scala.

1. Рекурсивные функции — что это?


Читать дальше →
Всего голосов 34: ↑31 и ↓3 +28
Просмотры 15K
Комментарии 22