Топ питань
Часова шкала
Чат
Перспективи
Монади (програмування)
З Вікіпедії, вільної енциклопедії
Remove ads
Монада — абстрактний тип даних у функційному програмуванні, що походить від відповідного терміна з теорії категорій. У функціональних мовах[які?] найчастіше використовується в ролі синтаксичного цукру для написання імперативної логіки (тобто тої, що має визначений порядок виконання операцій) або як механізм обробки помилок.[1][2]
Основними застосуваннями монад у функційному програмуванні є визначення операцій вводу/виводу (I/O) та зміни стану, уникаючи побічних ефектів[3]. Принцип дії монад полягає в тому, що, хоча функція і не може робити побічного ефекту напряму, вона може створювати значення, що описує бажаний побічний ефект, і яке можна використати коли потрібно. Однак, I/O та керування станом в жодному разі не є єдиними способами використання монад. Вони корисні тоді, коли розробник бажає описати обчислення в чисто функційному стилі, виконуючи паралельно інші обчислення.
Інший варіант застосування монади — механізм обробки помилок. В Гаскелі для таких цілей використовують монаду Maybe. Вона має два стани: «Just» та «Nothing». Перший виступає в ролі обгортки, тобто містить усередині певне значення яке повертає функція. Другий стан символізує відсутність даних або помилку. Використовуючи властивість прив'язки монад можна передавати значення в обгортці, що зменшує кількість надлишкового коду.
Функційна мова програмування Гаскель інтенсивно використовує монади та має синтаксичні конструкції для полегшення роботи з ними.
Remove ads
Приклади
Див. також
Примітки
Посилання
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads