[Закрыть]
 
popoff.donetsk.ua
Нет ничего податливей воды, Но твёрдое её не победит. Так в мире установлено навек: Что слабым сильное побеждено И мягким твёрдое усмирено. Об этом знает каждый человек, Но убедиться - редкому дано. /Дао Де Цзин/
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Статьи - ДонНТУ - Функциональное и логическое программирование - Функциональное программирование - Программирование с помощью функций и процедур
Я это делаю
Персональное меню
Голосование
Деньги, либо любимое занятие? Постоянный адрес этого вопроса
Ваш возраст (не обязательно):

Введите целое число от 3 до 99.
Почему? (не обязательно):
Другие вопросы
Поиск по сайту
Реклама
Гинеколог, стоматолог, психотерапевт в Донецке
Статистика

Программирование с помощью функций и процедур

Постоянный адрес статьи

Содержание

Критерии качества языка программирования

  • ЭВМ первого поколения : от быстродействия и объема памяти зависит эффективность программ;
  • потеря эффективности за счет экономичности при разработке и эксплуатации;
  • легкость понимания программ и рост эффективности оборудования для все большего числа приложений.
Функциональное программирование яснее выражает свои цели, а поэтому оно легче для понимания, эксплуатации и составления.

Программирование с помощью функций

Концепция функций – одно из фундаментальных понятий математики. Функция – правило, сопоставляющее каждому элементу некоторого класса Х соответствующий ему единственный элемент класса Y, где Y - область значений; Х - область определения.

Свойство соответствия (как функций)

прообраз x → f(x) образ
   (X)      (Y)
f(x) – результат применения функции f к аргументу x.

Способы описания функций

  • множество пар вида: {(xi, f(xi))}

  • таблично:
    xx1x2......
    f(x) f(x1) f(x2) ... ...

  • ряд равенств: f(x1)=y1, f(x2)=y2,...

  • рассмотренные выше способы применимы для функций, у которых мощность области определения конечна и не очень большая. Для остальных функций необходим иной формализм описания функций - правило(определение)

    Пример:
    корень_квадратный (х) =(правило)
    x X – параметр определения

Функция называется частично определенной над множеством А, если в множестве А существуют элементы, для которых образ посредством этой функции не определен.

Пример:
обратное(х)=1/х

Функция называется всюду определенной в А (общая над А), если она не является частично-определенной.

Пример:
квадрат(х)=х*х

Методика создания функциональных программ

  • определение набора базовых функций;

  • функция есть программа;

  • определение новых функций на основе существующих, то есть создаем иерархию определений функций.

Метод композиции (суперпозиции) функций является одним из фундаментальных способов конструирования новых функций.

Пример:
Степень_4(х) =квадрат (квадрат (х))

Арифметические выражения

Задача: определить иерархию функций для вычисления дискриминанта (D) квадратного уравнения.
  1. Базовые функции:

    плюс(x,y)=x+y
    минус(x,y)=x-y
    умн(x,y)=x*y...

  2. Запишем выражение D=b*b-4ac, используя базовые функции:

    минус(умн(b,b),умн(4,умн(a,c)))

Аппликативная структура

Аппликация – применение функции к своим аргументам.

Выражение состоит из двух частей:

  • операция эквивалентна функции;
  • операнд эквивалентен значению.

Структура вычисляется просто: операция применяется к своим операндам.

Аппликативный(строго функциональный язык - СФЯ)

В этом языке допустимы только строгие функции. Строгая функция получает исходные данные через аргументы и возвращает результат через имя.

Строго-функциональный язык:

  • не допускает побочных эффектов (если функция меняет значения внешних переменных)
  • не содержит операторов присваивания
  • не содержит переменных со значением, изменяемым присваиванием.

Переменная в функциональном языке совпадает с понятием переменной в математике: любая переменная что-то временно обозначает.

В строго-функциональном языке есть:

  • структурирование данных
  • функционалы

Смотрите так же

Статьи
 
ДонНТУ
 
Функциональное и логическое программирование
 
Функциональное программирование
 
Программирование с помощью функций и процедур
Ретроперспектива и перспектива развития
Строго функциональный язык

Последняя модификация: 22.08.05 23:04

Не проходите мимо! Оставьте Ваш комментарий в форуме! >>>