Clojure Data Structures and Algorithms Cookbook - PDF

Скачать полную версию книги "Clojure Data Structures and Algorithms Cookbook - PDF"

Clojure Data Structures and Algorithms Cookbook by Rafik Naccache
Структуры данных и алгоритмы часто встречаются на вашем пути, когда вы сжимаете файлы, компилируете программы, обращаетесь к базам данных или просто используете свой любимый текстовый редактор. Их понимание и реализация могут быть сложными. Любознательные ученики и промышленные разработчики могут найти их сложными, особенно если они сосредоточены на детальной реализации этих структур данных.

Clojure - это в высшей степени прагматичный и выразительный язык с эффективными и простыми возможностями манипулирования данными. Как таковой, он отлично подходит для реализации этих алгоритмов. Абстрагируясь от значительной части ненужных сложностей, возникающих при реализации, Clojure и его библиотеки помогут вам решить различные алгоритмические задачи, делая исследование данных выгодным и приятным.

С помощью 25 рецептов вы изучите продвинутые алгоритмы и структуры данных, которые хорошо поддаются разумной реализации в Clojure.

Книга открывается исследованием альтернативных вариантов использования структуры данных массива, охватывая сжатие LZ77, рисование фракталов с помощью треугольников Паскаля, имитацию многопоточного выполнения программы и реализацию операций намотки и размотки стека вызовов.

Книга подробно останавливается на связных списках, показывая, как строить двусвязные списки, ускорять время поиска по элементам таких структур, использовать связный список как основу синтаксического анализатора shift-reduce, а также реализовать неизменяемый связный список, используя перекошенное представление двоичных чисел.

После этого исследуются древовидные структуры данных, уделяя особое внимание построению самобалансирующихся Splay-деревьев, проектированию B-дерева, поддерживающего эффективное хранилище ключевых значений, построению Rope с возможностью отмены и демонстрации того, как Tries может использоваться в качестве средства автоматического завершения.

Далее обсуждаются некоторые методы оптимизации и машинного обучения, в частности, построение рекомендательного механизма на основе кокуррентных признаков, использование метода ветвей и границ для оптимизации интегральных задач стоимости и прибыли, алгоритм Дейкстры для определения оптимальных путей и резюмирование текстов с помощью алгоритма LexRank.

Особое внимание уделяется логическому программированию, вы научитесь использовать его для выявления интересных отношений между данными социальных сайтов, разработки простого инференсера типов для мини Java-подобного языка и создания простого движка для игры в шашки.

Будет рассмотрено асинхронное программирование, и вы разработаете параллельный веб-краулер, интерактивную HTML5-игру и платформу онлайн-заказа такси.

Наконец, вы изучите продвинутые случаи использования функций высшего порядка в Clojure, реализуя парсер рекурсивного спуска с использованием эффективной взаимной рекурсии, разрабатывая мини-ресурсный симулятор брандмауэра благодаря новой функции tansducers в Clojure 1.7 или создавая простой механизм унификации с помощью Continuation Passing Style.


18
Просмотры
0
Лайкнули

Лицензии:

  • CC BY-NC-SA 3.0 PH
  • Ссылка автора не требуется

Поделиться в сетях

Информация о книге:

Комментарии (0) Добавить

Кликните на изображение чтобы обновить код, если он неразборчив
Комментариев пока нет. Ваш комментарий будет первым!