📝EDN Format

📝EDN Format

up: 📁Clojure Development

EDNとは #

Extensible Data Notation.

Rich Hickey のかんがえたさいきょうのふぉーまっと(らしい, ref). そのためClojureプログラミング界隈ではではたいていEDN形式でファイルが保存される.

Rationale(必然的理由)の詳細はGitHubより.

ref. edn-format/edn: Extensible Data Notation - GitHub

Basic Usage #

clojure.edn namespace の edn/read-stringを基本的にはつかって読み込み.

ref. edn(extensible data notation)を使う - Qiita


examples #

(require '[clojure.edn :as edn])

(defn load-edn [file-path]
  (when-let [file (resource file-path)]
    (-> file
        slurp
        edn/read-string)))

(defn dump-edn! [file-path data]
  (let [save-data (with-out-str (pprint data))]
        (spit save-path file-data)))

💡EDN Insignts #

hashmapの区切りにカンマはいるの? #

EDNを出力するときにpprintとかで整形するとカンマがついている. これはClojureが読みやすさのためにREPL出力のときにつけてくれるものであるがClojureでは, はwhitespaceとして扱うので両者に違いはない.

ref. Clojure - Learn Clojure - Hashed Collections

気にしないほうがいい. ただカンマなしを見かけるほうが多い.

Datomicとの関係 #

EDNのシンタックスハイライト はどうする? #

Clojureを指定すればいい.

ednファイルの命名の慣習は? #

ednファイルはclojureで読めばそれはClojureのCollectionなのでその慣習に従うのがよさそう. hashmapなら単数, vectorなら複数など.