За последние два десятилетия развитие компьютерных технологий вызвало практическое повсеместное их использование. Практическая любая сфера человеческой жизни напрямую связана с использованием различных технических приспособлений.
На ряду с этим широкое развитие приобрели и языки программирования. В наше время количество различных языков перевалило за 300 и с каждым днем их число только возрастает. Подходы, основы и принципы программирования отличаются зачастую коренным образом. Существует два наиболее популярных подхода в создании программ. В первом случае центром работы является объект и его свойства (это – объектно-ориентированные языки типа Delphi, больше о нём можно узнать на http://delphiexpert.ru). В другом – функции. Такие языки принято называть функциональными. Самыми популярными представителями этой категории являются Haskell, LISP и Erlang. В них все решения поставленной задачи сводится к вычислению значения различных функций. Все в процессе программирования сводится к обнаружению математических закономерностей и решений. Подобные языки принято считать статическими – смысл решения заключается в получении результата, а не в его хранении, интерпретации или модификации.
Последние версии функциональных языков программирования оснащены возможностями многопоточного программирования, средствами автоматического тестирования представленного кода и интеграцией с большим числом иных языков программирования. Подобные среды программирования позволяют создавать короткие программы с высоким быстродействием. Для конкретного получения результата программа использует только вводимые аргументы. Строгая типизация данных, прямое ориентирование на получение конкретного результата в минимальные сроки и лаконичность синтаксиса. Эти характеристики свойственны всем функциональным языкам программирования и сделали их популярными и привлекательными.