Fork me on GitHub
#clojure-russia
<
2017-09-17
>
ivana20:09:34

Подскажите, а как в сабже идиоматично сделать такой тип данных: мап с иерархией ключей? Т.е. то, что в Хаскеле делается data T a = T String a [T a]

ivana20:09:21

Мне бы в идеале получить дерево, чтобы у каждой ноды спрашивать: ее имя (ключ), ее значение (любое, у нас же динамика :)) и список (или вектор или что там еще бывает) дочерних нод. Если список дочерних нод пустой, то это лист.

ivana20:09:06

Или как Сассман завещал, реализовать интерфейс абстрактного типа данных, а потом подменять разные реализации? Например, навскидку приходит в голову дерево (список списков) ключей, и отдельно мапа с этими ключами.

ivana20:09:51

Или мапу, у которой значения будут тоже мапы с 2 полями - собственно вэлью и список таких же мап, пустой на листьях. Наверное это лучше будет смотреться