Логіка програми, яка у інших мовах зазвичай виражається умовними операторами, у Haskell як правило реалізується за допомогою співставлення зі шаблоном у рекурсивних функціях. Мова Haskell реалізує ліниві обчислення, через це є можливим формулювати керуючі структури (такі як if) у вигляді звичайних виразів.