Hopefully, you've taken away a broader scope of the available Clojure functions, and how to use them to access, update, and compose data structures. This applies to scalars, collection types, and composite data types. You should also have a good grasp of I/O operations, which are Clojure's options when dealing with concurrency and parallelism and an understanding of the difference between the two.
We also stepped back and compared our Clojure
simple-moving-average function to equivalent versions in an object-oriented language (Java) and a purely functional, statically typed language (Haskell). This is all meant to orient you to Clojure's approach to computation and the different trade-offs that it makes.
The next chapter will consider our ...