Презентация на тему "Функциональное программирование"

Презентация: Функциональное программирование
1 из 10
Ваша оценка презентации
Оцените презентацию по шкале от 1 до 5 баллов
  • 1
  • 2
  • 3
  • 4
  • 5
1.0
1 оценка

Комментарии

Нет комментариев для данной презентации

Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.


Добавить свой комментарий

Аннотация к презентации

Смотреть презентацию онлайн на тему "Функциональное программирование" по информатике. Презентация состоит из 10 слайдов. Для студентов. Материал добавлен в 2016 году. Средняя оценка: 1.0 балла из 5.. Возможность скчачать презентацию powerpoint бесплатно и без регистрации. Размер файла 0.19 Мб.

Содержание

  • Презентация: Функциональное программирование
    Слайд 1

    Функциональное программирование

    Курс лекций для студентов 4 курса ЕНФ

  • Слайд 2

    2 Кубенский А.А. Функциональное программирование. Глава 1. Элементы функционального программирования. Глава 1. Элементы функционального программирования Архитектура фон Неймана диктует стиль программирования? Средства программирования: Арифметические и логические операции; Присваивания; Последовательное исполнение шагов алгоритма; Управление (управляющие конструкции); Процедуры и функции; Модули, исключительные ситуации, структуры данных,... Программа: описание процесса (алгоритма) или «черный ящик»? Действие Выбор Если «да» Если «нет» Алгоритм «Черный ящик» Вход Выход Функция 1.1. Введение в функциональное программирование

  • Слайд 3

    3 Кубенский А.А. Функциональное программирование. Глава 1. Элементы функционального программирования. Задача о вычислении значений квадратных корней уравнения (процедурный стиль программирования) { Процедура вычисляет вещественные или комплексные корни квадратного трехчлена, в предположении, что первый коэффициент (a) отличен от нуля. Аргументы: a, b, c – коэффициенты квадратного трехчлена; Результаты: complexFlag – признак комплексных корней; r1, r2 – вещественные корни, если complexFlag = False и вещественная и мнимая части двух корней, если complexFlag = True } procedure squareRoots (a, b, c : Real ; var complexFlag : Boolean; var r1, r2 : Real); function discriminant (a, b, c : Real) : Real; begin discriminant := sqr(b) – 4 * a * c end; var discr : Real; { Значение дискриминанта } begin discr := discriminant (a, b, c); { Вычисляем дискриминант } complexFlag := discr

  • Слайд 4

    4 Кубенский А.А. Функциональное программирование. Глава 1. Элементы функционального программирования. Та же программа, написанная в функциональном стиле программирования (на псевдоязыке с паскалеобразным синтаксисом) { Функция вычисляет вещественные или комплексные корни квадратного трехчлена, в предположении, что первый коэффициент (a) отличен от нуля. Аргументы: a, b, c – коэффициенты квадратного трехчлена; Результаты: признак комплексных корней; вещественные корни, если они вещественныеи вещественная и мнимая части двух корней, если мнимые } function squareRoots (a, b, c : Real) : (Boolean, Real, Real); function discriminant (a, b, c : Real) : Real; begin return sqr(b) – 4 * a * c end; const discr = discriminant(a, b, c); { Значение дискриминанта } const complexFlag = discr

  • Слайд 5

    5 Кубенский А.А. Функциональное программирование. Глава 1. Элементы функционального программирования. Особенности этой программы function squareRoots (a, b, c : Real) : (Boolean, Real, Real); function discriminant (a, b, c : Real) : Real; begin return sqr(b) – 4 * a * c end; const discr = discriminant(a, b, c); { Значение дискриминанта } const complexFlag = discr

  • Слайд 6

    6 Кубенский А.А. Функциональное программирование. Глава 1. Элементы функционального программирования. Функциональное представление множеств type intSet = function (Integer) : Boolean; { описание функционального типа данных } function emptySet (n : Integer) : Boolean; { пустое множество } beginreturn False end; function oddSet (n : Integer) : Boolean; { множество нечетных чисел } beginreturn n mod 2 = 1 end; Несколько полезных операций над множествами function addElement (s : intSet; newElem : Integer) : intSet; function newSet (n : Integer) : Boolean; begin return s(n) or (n = newElem) end; begin return newSet end; function buildInterval (min, max : Integer) : intSet; function newSet (n : Integer) : Boolean; begin return (n >= min) and (n

  • Слайд 7

    7 Кубенский А.А. Функциональное программирование. Глава 1. Элементы функционального программирования. Попробуем вычислить выражение difference (oddSet, addElement (emptySet, 3)) (7) { Принадлежит ли 7 множеству [odds] \ [3] } addElement s = emptySet newElem = 3 function emptySet (n : Integer) : Boolean; beginreturn False end; function addElement (s : intSet; newElem : Integer) : intSet; function newSet (n : Integer) : Boolean; begin return s(n) or (n = newElem) end; begin return newSet end; function oddSet (n : Integer) : Boolean; beginreturn n mod 2 = 1 end; function difference (s1, s2 : intSet) : intSet; function newSet (n : Integer) : Boolean; begin return s1(n) and not s2(n) end; begin return newSet end; Стек вычислений newSet s2 = addElement.newSet s1 = oddSet difference newSet

  • Слайд 8

    8 Кубенский А.А. Функциональное программирование. Глава 1. Элементы функционального программирования. Попробуем вычислить выражение difference (oddSet, addElement (emptySet, 3)) (7) { Принадлежит ли 7 множеству [odds] \ [3] } function emptySet (n : Integer) : Boolean; beginreturn False end; function addElement (s : intSet; newElem : Integer) : intSet; function newSet (n : Integer) : Boolean; begin return s(n) or (n = newElem) end; begin return newSet end; function oddSet (n : Integer) : Boolean; beginreturn n mod 2 = 1 end; function difference (s1, s2 : intSet) : intSet; function newSet (n : Integer) : Boolean; begin return s1(n) and not s2(n) end; begin return newSet end; Стек вычислений newSet difference.newSet n = 7

  • Слайд 9

    9 Кубенский А.А. Функциональное программирование. Глава 1. Элементы функционального программирования. Подведение итогов Императивные языки служат для описания процессов; функциональные – для описания функций, вычисляющих результат по исходным данным. На традиционных языках можно писать в функциональном стиле, однако средств работы с функциями в традиционных языках недостаточно. Традиционные способы реализации языков программирования плохо подходят для программ, написанных в функциональном стиле. Традиционные языки не могут обеспечить удобных средств для распараллеливания вычислений: последовательное выполнение команд – узкое место традиционной архитектуры компьютеров («фон-Неймановское горлышко»). Для функционального программирования требуются специализированные языки

  • Слайд 10

    10 Кубенский А.А. Функциональное программирование. Глава 1. Элементы функционального программирования. Литература 1. А.Филд, П.Харрисон. Функциональное программирование. 2. П.Хендерсон. Функциональное программирование. Применение и реализация. «Мир», Москва, 1983. – 349 с. «Мир», Москва, 1993. – 637 с. 4. IBM developerWorks. Beginning Haskell. http://www-106.ibm.com/developerworks/edu/os-dw-linuxhask-i.html 5. P.Hudak, J.Peterson, J.Fasel. Gentle Introduction to Haskell. http://haskell.org/tutorial 3. Р.В.Душкин. Функциональное программирование на языке Haskell. «ДМК Пресс», Москва, 2007. – 608 с.

Посмотреть все слайды

Сообщить об ошибке