With the rise of the multi-core CPUs has come a commensurate interest in functional languages like Haskell, ML, and Scala. Not being a functional language by nature, Java doesn’t usually come anywhere in that list, but since functional programming is, like object-oriented programming, more a study in concept than in syntax, it turns out that Java can do some fairly heavily "functional" things even without a new syntax or feature set; particularly with the use of the "FJ" library, an open-source implementation of functional concepts available for download from http://functionaljava.googlecode.org.
Clojure is a relatively new, dynamic Lisp that runs on the JVM. Clojure, being a Lisp, is extremely malleable and extensible, allowing Clojure the language, and the programmer the ability to create powerful yet consistent abstractions. Clojure, out-of-the-box comes with a set of these "mini-languages" and gives the programmer the ability to create new ones easily. In this article we will discuss some of these mini-languages, and how you can use them to write idiomatic Clojure code.
Most introductory programming books include a chapter on testing, seemingly as an afterthought. For the test-driven developer, that’s a little too late. Some programmers approach a new programming language with a few test-cases to understand a concept. Others thrive under fire and want to hit the ground running in a new programming language by creating an application. Regardless of your profile, this article will help you get started with a Scala testing environment so you can concentrate on the finer points of the language.