Функциональные языки

Основная идея, лежащая в основе функционального программирования, – это представление программы в виде математических функций (т.е. функций, значение которых определяется лишь их аргументами, а не контекстом выполнения). Оператор присваивания в таких языках не используется (или, как минимум, его использование не поощряется). Императивные возможности, как правило, имеются, но их применение обставлено серьезными ограничениями.

В конце 1950-х гг. появился язык ЛИСП (LISP – List Information Symbol Processing, язык для обработки списков) для работы со строками символов. Это особое предназначение ЛИСПа открыло для программистов новую область деятельности, известную ныне как "искусственный интеллект". В настоящее время ЛИСП успешно применяется в экспертных системах, системах аналитических вычислений и т.п.

Обширность области возможных приложений ЛИСПа вызвала появление множества различных диалектов ЛИСПа. Это легко объяснимо: применение ЛИСПа для понимания естественного языка требует определенного набора базисных функций, отличных, например, от используемого в задачах медицинской диагностики. Потомки ЛИСП – Planner (1967), Scheme (1975), Common Lisp (1984). Последний был принят в университетах США, а также многими разработчиками систем искусственного интеллекта в качестве основного диалекта языка ЛИСП. Многие его черты были унаследованы современными языками функционального программирования.

Кроме перечисленных, можно упомянуть ML и два его современных диалекта – Standard ML (SML) и CaML. Последний имеет объектно-ориентированного потомка – Objective CaML (O'CaML), а также Haskell и его более простой диалект Clean.

 
< Пред   СОДЕРЖАНИЕ     След >