This isn't quite as powerful as full blown pattern matching (which in turn isn't quite as powerful as full blown unification) because you can't branch logic based on whether a pattern matches or not.
http://stackoverflow.com/questions/4442314/differences-betwe...