Most functional programming languages like Haskell or ML allow to define functions using pattern matching. Instead of testing arguments in the body of a message, this allows to specify case-based function definitions in a very elegant way.Read more at:http://renggli.freezope.org/programming/smalltalk/fpm