Монади (програмування)Монада — абстрактний тип даних у функційному програмуванні, що походить від відповідного терміна з теорії категорій. У функціональних мовах[які?] найчастіше використовується в ролі синтаксичного цукру для написання імперативної логіки (тобто тої, що має визначений порядок виконання операцій) або як механізм обробки помилок.[1][2] Основними застосуваннями монад у функційному програмуванні є визначення операцій вводу/виводу (I/O) та зміни стану, уникаючи побічних ефектів[3]. Принцип дії монад полягає в тому, що, хоча функція і не може робити побічного ефекту напряму, вона може створювати значення, що описує бажаний побічний ефект, і яке можна використати коли потрібно. Однак, I/O та керування станом в жодному разі не є єдиними способами використання монад. Вони корисні тоді, коли розробник бажає описати обчислення в чисто функційному стилі, виконуючи паралельно інші обчислення. Інший варіант застосування монади — механізм обробки помилок. В Гаскелі для таких цілей використовують монаду Maybe. Вона має два стани: «Just» та «Nothing». Перший виступає в ролі обгортки, тобто містить усередині певне значення яке повертає функція. Другий стан символізує відсутність даних або помилку. Використовуючи властивість прив'язки монад можна передавати значення в обгортці, що зменшує кількість надлишкового коду. Функційна мова програмування Гаскель інтенсивно використовує монади та має синтаксичні конструкції для полегшення роботи з ними. ПрикладиДив. такожПримітки
Посилання
|
Portal di Ensiklopedia Dunia