Seven Concurrency Models in Seven Weeks

Seven Concurrency Models in Seven Weeks

You seem to imply that an s-expression only consists of lists of lists and vector literals are not s-exprs. For what I understand and S-expr is the representation the reader is capable of generating from the character stream in the input. In the case of traditional lisp, only atoms (numbers, symbols, etc.) and lists are allowed. In Clojure’s case, as there is a literal syntax for vectors and sets, the s-exprs are more sophisticated, but s-exprs as well.

Maybe I’m wrong, but I think that in Clojure s-expressions must include literals for vectors, sets and maps. My reasoning is that, in Lisp, a s-expr is what the reader returns an in Clojure the reader can return vectors.