В OLAP-кубах можно выполнять очень быстрый поиск в больших объемах агрегированных данных. Основная причина это то, что данные предварительно агрегируются в операции, которые легко комбинировать вверх (в основном +, -, среднее, стандартное, максимальное, минимальное и некоторые другие)
Как получить такое «антиленивое» поведение в clojure?
Я думаю о чем-то вроде
(def world-population {:africa 4e8 ;;this is an aggregation!
:africa/liberia 3.4e6
:africa/ethiopia 7.4e7
...})
Как обновить подобную структуру данных и убедиться, что родители объекта также обновлены? Нужно ли сворачивать собственную реализацию ref?