Hacker News new | ask | show | jobs
by ertian 653 days ago
Mandatory "simple is not the same as easy": https://www.youtube.com/watch?v=SxdOUGdseq4

Clojure vectors are just lists, basically.

"Atoms" are mutable references to immutable datastructures (Clojure is immutable-by-default). You can kinda think of them as pointers, but with specific update semantics.

Transactions are similar to database transactions: mutate several datastructures simultaneously, but only 'commit' the changes if all operations succeed. Roll back and (optionally) retry if any part fails.

Malli schemas are just a way of doing typechecking in a dynamically-typed language.

Datomic is a bigger topic. It's an implementation of a non-SQL database system based on immutable datastructures, in which all changes are appends rather than being destructive, allowing you to 'rewind' the database and view it at any point in the past.