Pattern matching is one of the core features of functional programming. But you do not have to know functional programming to understand pattern matching and algebraic data types. You do not even need to know what a function is. You only need to know a little bit about programming.
No functions, no alien languages with the syntax from another planet. Only C# and Nemerle.