Over the last fifteen years, functional programming has come of age. It has been used successfully on a number of substantial projects. A variety of robust and efficient implementations of functional languages have been developed. A functional language is taught as the first programming language in many university computing courses, and at a later stage in most others. Before examining the reasons for its popularity, we give a short overview of functional programming.