ВУЗ:
Составители:
10 Ленивое функциональное программирование
10.1 Haskell
Традиционно при изучении функционального программирования пользуются язы-
ком программирования Лисп. Для не новичков в программировании язык Лисп вызывает
определенный дискомфорт, чему способствует и его синтаксис с множеством скобок. Те,
кто уже программировал на привычных процедурных языках (скажем, на Паскале) стара-
ются в первую очередь воспользоваться в Лиспе уже привычными конструкциями (при-
сваиваниями, циклами) – благо, что различные диалекты Лиспа, как правило, этим распо-
лагают. После изучения курса «Функциональное программирование» у студентов остается
впечатление только о языке – «вычурный язык, лежащий на обочине главного направле-
ния в программировании, применяемый главным образом в области искусственного ин-
теллекта, поскольку там сложные символьные структуры данных».
Но такое впечатление не имеет никакого отношения к функциональному програм-
мированию! Парадигма функционального программирования – это очень мощный и кра-
сивый подход к программированию, который позволяет очень быстро создавать эффек-
тивные и надежные, компактные и легко модифицируемые программы самого широкого
профиля приложений. Функциональное программирование постоянно находится в интен-
сивном развитии. В последнее время реализованы очень мощные и удобные функцио-
нальные языки, обладающие новыми возможностями по сравнению с Лиспом. Эти языки
не провоцируют программиста воспользоваться привычными методами – такие вещи как
операторы присваивания и циклы там просто отсутствуют. Поэтому программисту прихо-
дится действительно следовать принципам функционального программирования.
Первый пик интереса к функциональным языкам ним приходится на конец 70-х –
начало 80-х годов 20 века. В середине 80 годов не существовало «стандарта» на чистый
ленивый функциональный язык программирования. В 1987 г. был создан комитет по раз-
работке такого стандарта и результатом его работы явился язык Haskell. Появление языка
Haskell вновь вызвало интерес к функциональным языкам.
Haskell – общего назначения, чисто функциональный язык программирования,
включивший в себя много недавних инноваций в проектировании языков программирова-
ния. Haskell имеет функции высокого порядка, нестрогую (ленивую) семантику, статиче-
ское полиморфное типизирование, определяемые пользователем алгебраические типы
данных, сопоставление с образцом, порождение списков с помощью форм (как в теории
множеств), модульную систему, систему ввода–вывода с помощью монад и богатое мно-
жество встроенных типов данных, включающих бесконечнозначные целые числа. Язык
является кульминацией и консолидацией многих лет исследований в области ленивых
функциональных языков.
Создание больших программных систем очень дорого и трудно. Еще более трудо-
емко и дорогостояще сопровождение таких систем. Для преодоления кризиса в програм-
мировании возникла методология объектно-ориентированного программирования. Важно
отметить, что функциональное программирование, в частности, язык Лисп, одно из пер-
вых реализовало существенные свойства методологии объектно-ориентированного про-
граммирования: инкапсуляцию, наследование и полиморфизм.
Функциональные языки, такие как Haskell позволяют разрабатывать и сопровож-
дать программные системы быстро и дешево. Язык Haskell имеет широкий спектр прило-
жений. В частности, он удобен, когда требуется высокая модифицируемость программ.
Web-сайт языка Haskell (www.haskell.org) дает много полезных ресурсов, вклю-
чающих:
•
Определение языка Haskell и библиотек.
•
Обучающий материал по программированию на языке Haskell.
•
Свободно распространяемые реализации языка.
70
Страницы
- « первая
- ‹ предыдущая
- …
- 68
- 69
- 70
- 71
- 72
- …
- следующая ›
- последняя »