Функциональные структуры данных. Часть 2 [Александр Тиунов]
Вторая часть доклада, посвященного функционально персистентным (полностью иммутабельным) структурам данных, которые широко представлены в функциональных языках. Многие из этих языков реализуют так называемую ленивую модель вычислений. Знакомым с персистентностью слушателям может быть известно, что структуры данных, использующие амортизацию, обычно нельзя сделать персистентными без существенных модификаций самой структуры. Как будет показано в ходе доклада, в ленивой модели вычислений такие структуры вполне могут быть персистентными, а для анализа времени работы таких структур мы модифицируем амортизационный анализ. Мы также рассмотрим некоторые общие идеи, лежащие в основе функциональных структур, и на основе этих идей построим персистентный дек, который затем модифицируем, получив Finger tree. Эта структура данных является усовершенствованной версией дека и дерева поиска по неявному ключу (также известного как rope) и входит в стандартную библиотеку языка Haskell.
Название:
Функциональные структуры данных. Часть 2 [Александр Тиунов]
Категория:
Разное