Монада — абстрактний тип данних в функціональному програмуванні, що походить від відповідного терміну з теорії категорій. В функціональних мовах[] найчастіше використовується в ролі синтаксичного цукру для написання імперативної логіки (тобто тої, що має визначений порядок виконання операцій) або в якості механізму обробки помилок.
Основними застосуваннями монад у функційному програмуванні є визначення операцій (I/O) та зміни стану уникаючи побічних ефектів. Принцип дії монад полягає в тому, що, хоча функція і не може робити побічний ефект напряму, вона може створювати значення, що описує бажаний побічний ефект, і яке можна використати коли потрібно. Однак, I/O та керування станом в жодному разі не є єдиними способами використання монад. Вони корисні тоді, коли розробник бажає описати обчислення в чисто функційному стилі, виконуючи паралельно інші обчислення.
Інший варіант застовування монади - механізм обробки помилок. В Гаскелі для таких цілей використовується монада . Вона має два стани: «Just» та «Nothing». Перший виступає в ролі обгортки, тобто містить всередині себе певне значення яке повертає функція. Другий стан символізує відсутність даних або помилку. Використовуючи властивість прив'язки монад можна передавати значення в обгортці, що зменшує кількість надлишкового коду.
Функційна мова програмування Гаскель інтенсивно використовує монади та має синтаксичні конструкції для полегшення роботи з ними.
Приклади
Див. також
Примітки
- Philip Wadler (1990). . Nice. Архів оригіналу за 29 березня 2008. Процитовано 22 лютого 2007. Proceedings of the 1990 ACM Conference on LISP and Functional Programming
- Philip Wadler. The Essence of Functional Programming [ 10 лютого 2007 у Wayback Machine.]. Conference Record of the Nineteenth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. 1992.
- Simon L. Peyton Jones, Philip Wadler. Imperative Functional Programming [ 16 червня 2008 у Wayback Machine.]. Conference record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Charleston, South Carolina. 1993
Посилання
- . Архів оригіналу за 17 лютого 2007.
- . Архів оригіналу за 9 травня 2008.
- . Архів оригіналу за 24 грудня 2006. Процитовано 22 лютого 2007.
- . Архів оригіналу за 19 січня 2007. Процитовано 22 лютого 2007.
- . Архів оригіналу за 11 жовтня 2006. Процитовано 22 лютого 2007.
- . Архів оригіналу за 19 лютого 2007. Процитовано 22 лютого 2007.
- Philip Wadler. (PDF). Архів оригіналу (PDF) за 17 квітня 2007. Процитовано 22 лютого 2007.
- Henk-Jan van Tuyl. . Архів оригіналу за 10 березня 2007. Процитовано 22 лютого 2007.
- (PDF). Архів оригіналу (PDF) за 24 березня 2015.
- . Архів оригіналу за 20 липня 2006.
![]() | Це незавершена стаття з інформатики. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет