Комбинаторното програмиране е

Комбинаторно програмиране (англ. програмиране на функционално ниво ) Дали е парадигма за програмиране, която не изисква изрично споменаване на аргументите на функцията (програмата), която се дефинира и използва комбинатори и състав на функции (но не λ-абстракция) вместо променливи. По този начин комбинаторното програмиране може да се счита за специален вид функционалност.

Съдържание

История на произхода

Идеята за описване на функции, без да се позовава на техните аргументи, има своите корени в математиката. През 1924 г., дори преди създаването на ламбда изчислението, Шейнфинкел създава комбинаторна логика - формализмът, на който се основава описаната тук парадигма (подобно на това как класическото функционално програмиране се основава на ламбда смятането на Църквата).

Парадигмата за програмиране, базирана на комбинаторната логика, е описана за пръв път от Джон Бакус в известната му лекция на Тюринг „Може ли програмирането да се освободи от стила на Фон Нойман“ [1] Въз основа на тези идеи Бакус създава FP езиците. и FL (англ.) руски. .

Имплицитно програмиране в J и K

В езиците J и K, съвременните вкусове на APL, този подход е известен като Неявно програмиране (англ. мълчаливо програмиране ).

Ето класически пример в езика J - дефиниране на функция (от гледна точка на J - глагол) за изчисляване на средната аритметична стойност:

Тук +/е монадата (унарна операция) обобщение на списъка,% диада (двоична операция) разделение и # диада за вземане на дължината на списъка. Тази конструкция (J изречение на език) гласи "средната стойност е сумата, разделена на дължината". Такива конструкции на три глаголни функции в J обикновено се наричат ​​„вилици".