Монади (програмування)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Деякі із функційних мов програмування використовують монади [1] [2] для структурування програм, що містять операції, що мають виконуватись в певному порядку. Назва монада походить із теорії категорій, розділу математики, що описує шаблони, які можуть застосовуватись до різних розділів математики.

Основними застосуваннями монад у функційному програмуванні є визначення операцій вводу/виводу (I/O) та зміни в станах без використання засобів мов програмування що чинять побічні ефекти [3]. Принцип дії монадів полягає в тому, що, хоча функція і не може робити побічний ефект напряму, вона може створювати значення, що описує бажаний побічний ефект, і яке можна використати коли потрібно. Однак, I/O та керування станом в жодному разі не є єдиними способами використання монад. Вони корисні тоді, коли розробник бажає описати обчислення в чисто функційному стилі, виконуючи паралельно інші обчислення.

Функціональна мова програмування Хаскель інтенсивно використовує монади та має синтаксичні конструкції для полегшення роботи з ними.

Джерела інформації[ред.ред. код]

  1. Philip Wadler. Comprehending Monads. Proceedings of the 1990 ACM Conference on LISP and Functional Programming, Nice. 1990.
  2. Philip Wadler. The Essence of Functional Programming. Conference Record of the Nineteenth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. 1992.
  3. Simon L. Peyton Jones, Philip Wadler. Imperative Functional Programming. Conference record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Charleston, South Carolina. 1993

Див. також[ред.ред. код]

Посилання[ред.ред. код]