аплікативного програмування

Аплікативного програмування - один з видів декларативного програмування. в якому написання програми полягає в систематичному здійсненні застосування одного об'єкта до іншого. Результатом такого застосування знову є об'єкт, який може брати участь в застосуваннях як в ролі функції. так і в ролі аргументу і так далі. Це робить запис програми математично ясною. Той факт, що функція позначається виразом, свідчить про можливість використання значень-функцій - функціональних об'єктів - на рівних правах з іншими об'єктами, які можна передавати як аргументи, або повертати як результат обчислення інших функцій.

Моделі аплікативного програмування грунтуються, як правило, на комбінаторної логікою або λ-численні. У комбінаторної логікою єдиний метаоператор - аплікація, що забезпечує застосування одного об'єкта до іншого, в λ-численні, крім аплікації, є метаоператор λ-абстракції, за допомогою якого можлива побудова функцій за виразами, які, в свою чергу, можна застосовувати до інших об'єктів. Таким чином, об'єкти в аплікативного програмуванні поводяться як функціональні суті, що відносить його до функціональній парадигмі. проте, в обмеженому сенсі, так як мають місце деякі особливості:

  • число аргументної місць (арность) об'єкта заздалегідь не фіксується, але проявляє себе поступово, у взаємодіях з іншими об'єктами;
  • при конструюванні складеного об'єкта один з вихідних об'єктів - функція, застосовується до іншого - аргументу, при цьому в інших контекстах вони можуть помінятися ролями, тобто функції і аргументи розглядаються як об'єкти на рівних правах;
  • дозволяється самопріменімості функцій, тобто об'єкт може застосовуватися сам до себе.

Аплікативного мову програмування - мова програмування. який призначений для підтримки розробки програм способом отримання результату обчислення функції, що залежить від комбінації змінних. Кінцевий результат досягається послідовним застосуванням функціональних перетворень до даних [1].

Прикладами аплікативного мов програмування служать функціональні мови Лісп [2] і ML. У мові Haskell ця парадигма програмування реалізована у вигляді аплікативного функтора. розширює можливості механізму функціональної абстракції вищих порядків до багатомісної.

Схожі статті