In terms of usage, yes. Not in terms of adoption as an implementation technique. If you want a non-cons-cell-based Lisp (and no one actually wants this -- that code is vectors is not the reason people use Clojure) you have only one option.
> vectors and maps enjoy first-class status,
They do in Common Lisp as well.
> even as syntactic elements
Vectors have a standard surface syntax in Common Lisp, and it's trivial to define a reader macro for maps if you want one. But anything you would do with a static map is probably better done with a CASE form.
> the big-O inefficiency of using vectors vs. linked lists is usually more than made up for by the speed gains of cache locality
All of this only matters when processing code, which is usually a tiny fraction of the CPU time. When processing data, Lisp has vectors, and Lisp programmers can and do use them.
> if you represent a list as a slice of an underlying vector, cdr is still O(1).
Yes, but then you still have to allocate memory to store the result.
No comments yet.