Тема Языки ии


Лекция 3. Основы функционального программирования



жүктеу 258 Kb.
бет4/18
Дата21.01.2022
өлшемі258 Kb.
#34485
түріЛекция
1   2   3   4   5   6   7   8   9   ...   18
МУ-консп-лек-СИИ-рус

Лекция 3. Основы функционального программирования

Цель лекций. Основные принципы функционального программирования, история и языки функционального программирования.

Содержание лекций. Язык LISP был впервые предложен Джоном Маккарти в конце 50 годов. Вначале этот язык рассматривался как альтернативная модель вычислений на основе теории рекурсивных функций. Хотя LISP - это один из старейших компьютерных языков, все еще находящихся в использовании, при внимательном рассмотрении его истории развития становится ясно, что он постоянно идет в авангарде языков программирования. Эта модель программирования зарекомендовала себя столь хорошо, что на принципах функционального программирования были основаны многие другие языки, в том числе SCHEME, ML и FP и сейчас язык Хаскелл. В Лиспе символы обозначают числа, другие символы или более сложные структуры, программы и другие лисповские объекты. Символы могут состоять как из прописных, так и из строчных букв, хотя в большинстве Лисп-систем прописные и строчные буквы отождествляются и представляются прописными буквами. Символы T и NIL имеют в Лиспе специальное назначение: T - обозначает логическое значение истина, а NIL - логическое значение ложь. Создание программы на Лиспе - написание некоторой функции, возможно сложной, при вычислении использующей другие функции либо рекурсивно саму себя. На практике, написание программ осуществляется записью в файл определений функций, данных и других объектов с помощью имеющегося в программном окружении редактора. Файлу присваивается расширение LSP. Необязательно делать отступы в строках выражений, входящих в ваши функции. На самом деле, по желанию, вы можете написать всю программу в одну строку. Однако отступы в строках и пустые строки делают структуру программы понятней и более читабельней. Так же выравнивание начальных и конечных скобок основных выражений помогают убедиться в балансе ваших скобок. [7,8]. В языке Лисп как для вызова функций, так и для записи выражения принята единообразная префиксная форма записи, при которой как имя функции или действия, так и сами аргументы записываются внутри скобок: (f x), (g x y), (h x (g y z)) и т. д. Арифметические действия: (+ числа) - сложение чисел, (- число числа) - вычитание чисел из числа (* числа) - умножение чисел и т. д._(+ 5 7 4)  16. _(- 10 3 4 1)  2, _(/ 15 3)  5. Кроме приведенных, существует множество других, но не менее полезных функций. Язык Haskell не позволяет использовать побочные эффекты, что ведёт к уменьшению ошибок. Таким образом, программы на языке Haskell легче писать, они более стабильны и легче в обслуживании. Язык Haskell это современный язык общего назначения, который был разработан для того, чтобы объединить в себе коллективные знания сообщества приверженцев функционального программирования в целях создания одного элегантного, мощного и общедоступного языка. В отличие от некоторых других языков функционального программирования язык Haskell является чистым. Он не допускает никаких побочных эффектов. Это, несомненно, самая важная особенность языка Haskell. Ещё одной особенностью языка Haskell является то, что он является языком с отложенными вычислениями. Это означает, что ничего не будет вычислено, пока не должно будет быть вычислено. Например, можно определить в бесконечной рекурсии бесконечный список чисел. Только те элементы списка, которые на самом деле будут использованы, будут вычислены. Это дает возможность для решения многих проблем использовать очень элегантные методы. Типичным образцом решения проблемы могло бы быть задание списка всех возможных методов решения с последующим отсеиванием неправильных. Оставшийся список впоследствии будет содержать только допустимые решения. Отложенные вычисления делают эту операцию очень прозрачной. Если вам нужно одно решение, то вы можете просто извлечь первый элемент из получившегося списка - механизм ленивых вычислений удостоверится, что ничего ненужного не посчитано.


жүктеу 258 Kb.

Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   18




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау