5 ms·
EDN (Extensible Data Notation) is a subset of Clojure: https://github.com/edn-format/edn https://github.com/edn-format/edn It is: - Unambiguous - Streamable
by pgt 3y ago
EDN (Extensible Data Notation) is a subset of Clojure: https://github.com/edn-format/edn https://github.com/edn-format/edn
It is:
- Unambiguous
- Streamable
- Extensible
- Whitespace-insensitive, but there are formatting conventions for readability
- ldhough 3y agoSo much better than the alternatives, really hope it starts catching on outside the Clojure ecosystem.
- waffletower 3y agoIndeed, it translates into and out of JSON quite well, and is much more human readable. A much much saner format than YAML. However, EDN is less hospitable to non-Lisp code blobs and heredocs, which limits its adoption IMO.
- waffletower 3y agoNot precisely whitespace-insensitive, as whitespace is required for element demarcation/separation. However, semantic indentation shenanigans are non-existent. Commas are considered whitespace and unnecessary -- which is beautiful.
- tremon 3y agoThis is the first data format I've seen that makes explicit distinction between lists and sets, which is good. But I'm not sure what the semantic distinction is between lists and vectors: in my mind, arrays and linked lists are implementation details of the data structure in code, not the data format.
- waffletower 3y agoThe distinction between lists and vectors manifests from the same two distinct Clojure collection types. They are syntactically distinct within the language and are present to provide homoiconicity -- code as data -- Clojure lisp expressions can be represented in EDN. Vectors, [], are typically the preferred collection literal.