Clojure Programming/Examples/API Examples/do Macros

doall
hi mum hi dad hi sister (nil nil nil)

dorun
hi mum hi dad hi sister nil

doto
NB: doto returns the object after modification, which is very convenient. Consider in the above example no variable binding is required to access the resultant object. Here you can see it is much more readable using doto than the alternative which would be to create a temporary binding with let.