clojure - 如何操作记录?

标签 clojure

如何操作记录?

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

我想对记录进行序列化。
例如:

(defrecord Point [x y])

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

如果数据存储在文件中:
1 2
3 4
5 6

如何将这些读入记录?
(with-open [rdr (clojure.java.io/reader file)]
  (doall (? (line-seq rdr))))))

谢谢!

最佳答案

Clojure 的 defrecord为定义的类型生成一些辅助函数。它们的目的是使该类型的构造函数成为一流的 Clojure 公民。特别是defrecord Point生成 map->Point这需要一张 map 和(这可能是您需要的)->Point这需要位置参数。所以这:

(defrecord Point [x y])
(map (partial apply ->Point) [[1 2] [3 4]])

产生这个:
(#user.Point{:x 1, :y 2} #user.Point{:x 3, :y 4})

关于clojure - 如何操作记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9988856/

相关文章:

loops - 如何在clojure中的每一行打印数字列表?

dictionary - Clojure - 在最内层过滤嵌套映射

clojure - "' cljsbuild ' not a task"

clojure - 是否有一个在线工具可以自动缩进和格式化Clojure代码,就像有很多JSON一样?

clojure - 如何在 Clojure 中链接 Promise

jdbc - "Web development with Clojure"- 编译错误 : No such var: sql/create-table

java - 更新部分 XML 文件,保留所有格式

configuration - Clojure 有类似~/.clisprc.lisp 的配置文件吗?

clojure - 解释 Clojure 符号

java - Clojure/Java - 弹出窗口