I was reading the RSS feed for dzone and saw this well written introduction to Functional Programming. Since people have been discussing adding closures to Java, I started reading more about functional programming languages.  After spending many years watching people struggle with multi-threaded programs, I’m beginning to think function programming languages might be ready to make a come back.  Such languages encourage you to design data structures and algorithms that are independent of global (or shared) variables.