У меня есть файл, содержащий такой текст, как:
1|apple|sweet
2|coffee|bitter
3|gitpush|relief
Я хочу работать с этим вводом, используя карту.В Java или Python я бы создал вложенную карту, например:
{1: {thing: apple, taste: sweet},
2: {thing: coffee, taste: bitter},
3: {thing: gitpush, taste: relief}}
Или даже список внутри карты, например:
{1: [apple, sweet],
2: [coffee, bitter],
3: [grape, sour]}
Конечная цель - получить доступ к двум последнимданные столбца эффективно, используя первый столбец в качестве ключа.Я хочу сделать это в Clojure, и я новичок в этом.До сих пор мне удалось создать список карт, используя следующий код:
(def cust_map (map (fn [[id name taste]]
(hash-map :id (Integer/parseInt id)
:name name
:taste taste ))
(map #(str/split % #"\|") (line-seq (clojure.java.io/reader path)))))
И я получаю это, но это не то, что я хочу.
({1, apple, sweet},
{2, coffee, bitter},
{3, gitpush, relief})
Это было быхорошо, если вы можете показать мне, как сделать наиболее эффективную или вложенную карту и список внутри карты в Clojure.Спасибо!