So i'm taking a course on functional programming where we learn the ins and outs of Standard ML, today my instructor told me that one of the areas where such languages really shine is in compilers. A program that takes some very well defined input (C++ code for example), does optimizations on said input, and then translates it to assembly or bytecode or whatever. Apparently the mechanisms (pattern matching in particular) of functional programming languages such as ML and Haskell are very well suited for those tasks.
Yet he couldn't answer me why a compiler as big and advanced as GCC was implemented in C, and not in a functional language.
There must be a reason, enlighten me gurus.