Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

One of the advances of Clojure over other Lisps, is that vectors and maps are just as well supported as lists. They have their own reader syntax (using [] and {} as delimiters, respectively), and all three implement the Collection interface, which means a lot of Clojure functions work equally well on all three. There is also syntax for destructuring. And the use of vectors in places where destructuring is possible (like function arguments and let bindings) makes it easier to identify code structure at a glance (a complaint against other Lisps).


Common lisp sequence functions work on lists, vectors (including those specialized for bits, bytes, etc), and strings.


Some of them do. There are lots of redundant functions in CL, for reasons of backwards compatibility.


All of the sequence functions and special forms work on all of the sequence types.

The "redundancy" is that there are also functions/forms that work on specific sequence types. It would be surprising if there weren't because if two data types have exactly the same set of operations, one of them may be unnecessary.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: