Пишем функционально

Статья прислана на конкурс Летний АвторRUN!
Вступление
Я хочу вас познакомить с функциональным программированием и языком Haskell. Даже если вы не будете его использовать, знание поможет изменить стиль написания программ на любом языке в лучшую сторону.
О языках
Есть два класса языков программирования - императивные и декларативные. Программа на императивных языках представляет собой последовательность шагов, которые должен выполнить компьютер для получения результата. Программа на декларативном языке является описанием результата. При написании программы на языке любого класса необходимо описать, хотя бы для себя, что желаем получить от программы. Императивный подход также нуждается в том чтобы мы еще указали путь достижения результата, а это дополнительная сложность.
Декларативные языки делятся на логические и функциональные. В логических языках программа задается набором предикатов (утверждений), на их основе вычисляется результат. В функциональных - объектом вы...

Полный текст статьи читайте на overclockers.com.ua