Монада — абстрактний тип данних в функціональному програмуванні, що походить від відповідного терміну з теорії категорій. В функціональних мовах[] найчастіше використовується в ролі синтаксичного цукру для написання імперативної логіки (тобто тої, що має визначений порядок виконання операцій) або в якості механізму обробки помилок.
Основними застосуваннями монад у функційному програмуванні є визначення операцій (вводу/виводу) (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, Інтернет
Monada abstraktnij tip dannih v funkcionalnomu programuvanni sho pohodit vid vidpovidnogo terminu z teoriyi kategorij V funkcionalnih movah yaki najchastishe vikoristovuyetsya v roli sintaksichnogo cukru dlya napisannya imperativnoyi logiki tobto toyi sho maye viznachenij poryadok vikonannya operacij abo v yakosti mehanizmu obrobki pomilok Osnovnimi zastosuvannyami monad u funkcijnomu programuvanni ye viznachennya operacij vvodu vivodu I O ta zmini stanu unikayuchi pobichnih efektiv Princip diyi monad polyagaye v tomu sho hocha funkciya i ne mozhe robiti pobichnij efekt napryamu vona mozhe stvoryuvati znachennya sho opisuye bazhanij pobichnij efekt i yake mozhna vikoristati koli potribno Odnak I O ta keruvannya stanom v zhodnomu razi ne ye yedinimi sposobami vikoristannya monad Voni korisni todi koli rozrobnik bazhaye opisati obchislennya v chisto funkcijnomu stili vikonuyuchi paralelno inshi obchislennya Inshij variant zastovuvannya monadi mehanizm obrobki pomilok V Gaskeli dlya takih cilej vikoristovuyetsya monada Vona maye dva stani Just ta Nothing Pershij vistupaye v roli obgortki tobto mistit vseredini sebe pevne znachennya yake povertaye funkciya Drugij stan simvolizuye vidsutnist danih abo pomilku Vikoristovuyuchi vlastivist priv yazki monad mozhna peredavati znachennya v obgortci sho zmenshuye kilkist nadlishkovogo kodu Funkcijna mova programuvannya Gaskel intensivno vikoristovuye monadi ta maye sintaksichni konstrukciyi dlya polegshennya roboti z nimi PrikladiDiv takozhFunkcijne programuvannya Haskell ProgramuvannyaPrimitkiPhilip Wadler 1990 Nice Arhiv originalu za 29 bereznya 2008 Procitovano 22 lyutogo 2007 Proceedings of the 1990 ACM Conference on LISP and Functional Programming Philip Wadler The Essence of Functional Programming 10 lyutogo 2007 u 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 chervnya 2008 u Wayback Machine Conference record of the Twentieth Annual ACM SIGPLAN SIGACT Symposium on Principles of Programming Languages Charleston South Carolina 1993Posilannya Arhiv originalu za 17 lyutogo 2007 Arhiv originalu za 9 travnya 2008 Arhiv originalu za 24 grudnya 2006 Procitovano 22 lyutogo 2007 Arhiv originalu za 19 sichnya 2007 Procitovano 22 lyutogo 2007 Arhiv originalu za 11 zhovtnya 2006 Procitovano 22 lyutogo 2007 Arhiv originalu za 19 lyutogo 2007 Procitovano 22 lyutogo 2007 Philip Wadler PDF Arhiv originalu PDF za 17 kvitnya 2007 Procitovano 22 lyutogo 2007 Henk Jan van Tuyl Arhiv originalu za 10 bereznya 2007 Procitovano 22 lyutogo 2007 PDF Arhiv originalu PDF za 24 bereznya 2015 Arhiv originalu za 20 lipnya 2006 Ce nezavershena stattya z informatiki Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi