Я ищу хорошую функциональную структуру данных для хранения пространственных (точечных) данных. Структура данных должна позволять простые эпсилонные запросы для уже присутствующих точек. Также мне нужно довольно часто изменять данные. Это означает, что точки могут перемещаться и должны быть обновлены в структуре данных. Вероятно, это можно обработать с помощью обычного удаления/добавления, но реальный ход может быть быстрее.
На данный момент я думаю об использовании quad/oct-trees (или выше), так как часть перемещения должна быть довольно простой. Однако известно, что квадранты хуже, чем балансировка. KD-Trees может быть другим выбором, но обновление кажется довольно неприятным. Также большинство реализаций пространственной структуры данных, которые я могу найти, являются только процедурами, и я использую функциональный язык.