(Functional) Programming
So far we have seen how to write literals, expressions, value declarations, and method declarations. We now have the tools to write non-trivial programs that generate complex images. In this chapter we will introduce some more tools to our functional programming toolbox and create even more complex images: recursion, first-class functions, and higher-order functions.