如何将序列序列转换为具有clojure的地图序列?

mag*_*ber 3 clojure

我正在读取文件中的数据,其中每行有两个值.每一行由表示文件的外部序列内的序列表示.

我想将数据重组为一系列地图以供进一步处理.

我知道如何从键集和值序列创建映射:

=> (defstruct entry :name :age)
=> (apply struct entry '("John" 34))
{:name "John", :age 34}
Run Code Online (Sandbox Code Playgroud)

但是,如何根据一系列值序列创建一系列此类地图?

(map (apply struct entry) '(("John" 34) ("Lisa" 41))))
Run Code Online (Sandbox Code Playgroud)

结果是:

java.lang.IllegalArgumentException: Don't know how to create ISeq from: clojure.lang.PersistentStructMap$Def
Run Code Online (Sandbox Code Playgroud)

编辑:为了清晰起见重命名符号.

Red*_*ins 5

结构已经过时,首选是使用记录.

(defrecord Person [name age])

(map (partial apply ->Person) '(("John" 34) ("Lisa" 41)))
Run Code Online (Sandbox Code Playgroud)