Fabulous Adventures in Data Structures and Algorithms — это книга, показывающая, что алгоритмы могут быть не только полезными, но и по-настоящему увлекательными. В отличие от стандартных «рецептов для собеседований», она знакомит читателя с необычными и малоизвестными структурами данных и алгоритмическими подходами, способными существенно изменить стиль мышления и практику программирования.
Автор демонстрирует, как строить эффективные двусторонние очереди из неизменяемых компонентов, автоматически форматировать структурированный текст, работать со случайными величинами и пользовательскими распределениями, а также использовать неизменяемость для уменьшения объёма данных и ускорения повторных вычислений. Значительное внимание уделяется математическим основам, лежащим в базе списков, nullable-типов, функций, асинхронных задач и вероятностей.
В книге рассматриваются неизменяемые структуры данных — стеки, очереди, деки и нетривиальные конструкции вроде списков Хьюза, алгоритмы из области разработки инструментов (поиск с возвратом, унификация и антиунификация), а также работа со стохастическими величинами, вероятностными распределениями и байесовским выводом. Книга предназначена для практикующих разработчиков, знакомых с C#, Java, Python или аналогичными объектно-ориентированными языками; все примеры приведены на C#.
Eric Lippert — инженер и архитектор языков программирования, разработавший языки, компиляторы и другие инструменты для разработчиков в компаниях Microsoft, Coverity и Facebook. Он участвовал в проектировании, реализации и спецификации Visual Basic, JavaScript, VBScript, C#, Hack и Bean Machine. Эрик также известен своим популярным блогом о дизайне языков, структурах данных и алгоритмах, а также о «приключениях в кодинге», который уже более 20 лет