Я безуспешно пытался отобразить вложенные значения карты в векторе в вектор векторов.
У меня есть такие данные:
[{:country {:name "chile", :id 1},
:subcountries [{:name "talca", :id 2}
{:name "concepcion", :id 3}
{:name "puerto montt", :id 4}]}
{:country {:name "united states", :id 5},
:subcountries [{:name "boston", :id 6}
{:name "texas", :id 7}]}]
Хотя код, с которым я играю, смутно возвращает приблизительное значение того, что я пытаюсь получить в результате:
(map
(fn [x]
(let [{{id :id name :name} :country
subcountries :subcountries} x]
[id
name
(map (fn [y] (let [{yid :id yname :yname} y] [yid yname])))]))
data)
Результат, который я получаю, довольно странный, поскольку вектор Я бы хотел, чтобы это была просто функция:
([1 "chile" #function[clojure.core/map/fn--5862]]
[5 "united states" #function[clojure.core/map/fn--5862]])
Что я делаю не так?
Ожидаемый результат должен выглядеть примерно так:
[[["chile" 1] ["talca" 2] ["concepcion" 3] ["puerto montt" 4]]
[["united states" 5] ["boston" 6] ["texas" 7]]]