I found this question on Stackoverflow.
http://stackoverflow.com/questions/16353066/how-are-functors...