Hacker News new | past | comments | ask | show | jobs | submit login

But you can use `first`, `rest`, etc. in new code. CL and Scheme are stuck with the old names for backward compatibility reasons going back over 60 years.

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

It's not necessarily a flaw with the language, in any case, just something I've noticed in Clojure articles.

I suppose I'm agreeing with the author - refactoring Clojure to make it more readable is a good idea.




> 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.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: