13. Функциональный подход программирования.
Функциональным называется программирование при помощи функций в математическом их понимании. Функциональное программирование основано на следующей идее: в результате каждого действия возникает значение, которое может быть аргументом следующего действия. Программы строятся из логически расчлененных определений функций.
Язык LISP (LISt Processing) – язык программирования высокого уровня, разработан в 1961 году Дж. Маккарти. В основе Лиспа лежит функциональная модель вычислений, ориентированная прежде всего на решение задач нечислового характера.
ОСОБЕННОСТИ функционального программирования.
1. Вызов функций является единственной разновидностью действий, выполняемых в функциональной программе.
2. В алгоритмических языках программа является последовательностью операторов, вызовов процедур в соответствии с алгоритмом. В функциональном программировании программа состоит
из вызовов функций и описывает то, что нужно делать и что собой представляет результат решения, а не как нужно действовать для получения результата.
3. Основными методами программирования являются суперпозиция функций и рекурсия.
4. Функциональное программирование есть программирование, управляемое данными. В строго функциональном языке однажды созданные (введенные) данные не могут быть изменены!
5. В алгоритмических языках с именем переменной связана некоторая область памяти, соответствие строго сохраняется в течение всего времени выполнения программы. В функциональном программировании переменная обозначает только имя некоторой структуры, имена символов, переменных, списков, функций и других объектов не закреплены предварительно за какими-либо типами данных. В ФП одна и та же переменная в различные моменты времени может представлять различные объекты.
6. В языках функционального программирования программа и обрабатываемые ею данные имеют единую списочную форму представления.
7. Функциональное программирование предполагает наличие функционалов – функций, аргументы и результаты которых могут быть функциями.
ПРЕИМУЩЕСТВА языков ФП.
- Краткость программы.
- Функциональные программы поддаются формальному анализу легче своих аналогов на алгоритмических языках за счет использования математической функции в качестве основной конструкции.
- Возможность реализации на ЭВМ с параллельной архитектурой.
.
.
- 2. Алгоритмы унификации
- 3. Структура пролог-программы
- Раздел описания доменов (типов).
- Раздел описания предикатов внутренней базы данных
- Раздел описания предикатов
- Раздел описания предложений
- Раздел описания внутренней цели
- 4. Организация повторов
- 8. Сортировка списков
- 9. Выборка элементов из списков
- 10. Слияние списков
- 11. Множества в прологе
- 12. Реализация деревьев в прологе
- 13. Функциональный подход программирования.
- 14. Методы обработки списков (лисп).
- 15. Определение универсальной функции.
- 16. Предикаты и истинность в лиспе.
- 17. Отображения и функционалы
- Отображения структур данных и функционалы
- 18. Имена, определения и контексты в лисп
- 19. Prog выражения и циклы в лисп Свойства атомов и категории функций
- Prog-выражения и циклы
- 20. Списки свойств атомов и структура списков
- Представление структуры списка
- 21. Числа и мультиоперации
- 22. Функционалы - общее понятие.
- 23. Безымянные функции
- 24. Экспертные системы. Реализация в пролог и лисп