从Clojure/Incanter中的文本文件中读取(MATLAB)结构的最佳方式

Ali*_*Ali 1 matlab text struct clojure

我将matlab结构导出到文本文件中,以便我可以在clojure中读取它们.我有一个文本文件,如:

name
Ali
age
33
friends-ages
30
31
25
47
Run Code Online (Sandbox Code Playgroud)

我知道我可以阅读这个文件,但是将它转换成以下内容的方法是什么?

(def person1 
    {:name "Ali"
     :age  33
     :friends-ages [30 31 25 47]})
Run Code Online (Sandbox Code Playgroud)

或者让它更容易:

name
Ali
age
33
Run Code Online (Sandbox Code Playgroud)

至:

(def person1 
    {:name "Ali"
     :age  33})
Run Code Online (Sandbox Code Playgroud)

Ham*_*aya 5

假设每个文件都有一条记录,

(defn parse [f]
  (let [[_ name _ age _ & friends] (.split (slurp f) "\n")]
    {:name name :age age :friends (map read-string friends)}))

(parse "../../../Desktop/t.txt")
Run Code Online (Sandbox Code Playgroud)

你得到,

{:name "Ali", :age "33", :friends-ages (30 31 25 47)}
Run Code Online (Sandbox Code Playgroud)