← Back to context

Comment by iLemming

2 months ago

> Clojure had a chance to do better because they were starting a new thing.

And it did. The seq abstraction is way more practical than the old-school list obsession in other Lisps. You get to treat collections uniformly while keeping the performance benefits of each implementation. Pretty smart move, honestly.

But sequences already existed in Common Lisp. The "list obsession in other Lisps" is largely people who don't actually use Lisp, IME.

  • That sounds like something someone unfamiliar with the subject would say.

    While Common Lisp does have sequence functions, Clojure's seq abstraction is fundamentally different and more comprehensive: Clojure's seqs work uniformly across all data structures (vectors, maps, sets, strings, etc.), not just sequences; Clojure seqs are lazy by default; The seq abstraction is built around immutable data structures from the ground up; In Clojure, everything implements the seq interface - it's the primary abstraction, not just a library feature.

    Common Lisp's sequences are more limited - they work on lists, vectors, and strings, but the interface isn't as pervasive or as foundational to the language design. Clojure made the seq abstraction central to how you work with any collection.