1 data structure and 100 functions than 10 data types and 10 functions” • Clojure adheres to the Lisp philosophy: • sequence abstraction • all collection types are “sequable” Wednesday, June 19, 13
used on all basic data structures • first, rest, map, filter, some, reduce • +30 more • some collection-specific functions • e.g subvec for vectors Wednesday, June 19, 13
A huge win for concurrency • Functions return copies of the original • The copies are very efficient ones • Collection types implement the sequable interface => “Few data types, lots of functions operating on them” Wednesday, June 19, 13