如何操纵记录?

Kan*_*ane 4 clojure

如何操纵记录?

我在哪里可以找到一些例子?

我想对记录做一个序列.例如:

(defrecord Point [x y])
Run Code Online (Sandbox Code Playgroud)

如何从'[[1 2] [3 4] [5 6]]'制作一系列分数?

如果数据存储在文件中:

1 2
3 4
5 6
Run Code Online (Sandbox Code Playgroud)

如何将这些读入记录?

(with-open [rdr (clojure.java.io/reader file)]
  (doall (? (line-seq rdr))))))
Run Code Online (Sandbox Code Playgroud)

谢谢!

Raf*_*ird 5

Clojure defrecord为所定义的类型生成一些辅助函数.他们的目的是让这种类型的建造者成为一流的Clojure公民.特别是defrecord Point生成map->Point需要一个地图和(这可能是你需要的)->Point采取位置参数.所以这:

(defrecord Point [x y])
(map (partial apply ->Point) [[1 2] [3 4]])
Run Code Online (Sandbox Code Playgroud)

产生这个:

(#user.Point{:x 1, :y 2} #user.Point{:x 3, :y 4})
Run Code Online (Sandbox Code Playgroud)