Oddly, graphics processing is very functional, yet procedural languages are used to teach it. In a nutshell, matrices operate on matrices operate … . In between some of the stages, drawing takes place; the rightmost argument is the beginning of the scene. Years ago, I gave up learning OpenGL because it was so tedious. Now that I am enlightened by FP, I understand and enjoy graphics programming so much more that I wrote an API just for the fun of it.