Концепция функции является одним из фундаментальных понятий математики. Каждому элементу из области определения однозначная функция ставит в соответствие в точности один элемент из области значения. Чаще всего правило задается формулой, устанавливающей, какие вычислит-е операции надо произвести над х, чтобы найти y.
Если есть элементы из области определения, для которых отображе-ние посредством этой функции не определено, то функция называет-ся частичной или частично определенной. Функция, не являющаяся частичной, называется общей или всюду определенной.
Функцию нескольких аргумента можно рассматривать как функцию одного аргумента, мн-во значений которого является декартовым произведением мн-в значений всех аргументов функции.
Некоторые функции на разных частях области определения задают-ся разными формулами. Такие функции удобно записывать как если a>b то c иначе d. Условное предложение "если то иначе” позволяет выбрать одну из двух формул для вычисления результата функции в зависимости от условия.
Важнейшим приемом в функциональном прог-ии является компози-ция функций, позволяющая определять одни функции через другие. Функциональная программа состоит из совокупности определений функций. Функции представляют собой вызовы других функций и предложения, управляющие последовательностью вызовов. Вычисление начинается с вызова некоторой функции, которая вызы-вает функции, входящие в ее определение и т.д.
Строго функциональный язык не допускает побочных эффектов, не признает присваивание и передачу управления. Разветвление вычис-лений основано на механизме обработки частей условного предложе-ния. Повторяющиеся вычисления осуществляются через рекурсию. Так как нет присваивания, переменные, получив значение в начале блока вычислений, например, при вызове функции, больше никогда его не меняет. Таким образом, переменные – это просто сокращенная запись их значений, и на место переменных в программе всегда мож-но вставить выражения, по которым они вычисляются.