Всички монади ли са моноиди?
Всички монади ли са моноиди?

Видео: Всички монади ли са моноиди?

Видео: Всички монади ли са моноиди?
Видео: Rainbow Connection by Kermit the Frog from The Muppet Movie 2024, Декември
Anonim

Добре казано, може би най-краткият отговор някога е: А монада е просто а моноиден в категорията ендофунктори. Доволен от моноиден аксиоми (i. и ii.), a монада може да се разглежда като a моноиден който е ендофунктор заедно с две естествени трансформации.

Тук какво е монаден ендофунктор?

В теорията на категориите, клон на математиката, a монада (също тройна, триада, стандартна конструкция и фундаментална конструкция) е ендофунктор (функтор, съпоставящ категория със себе си), заедно с две естествени трансформации, необходими за изпълнение на определени условия за съгласуваност.

Впоследствие възниква въпросът какво е бифунктор? А бифунктор (известен също като двоичен функтор) е функтор, чийто домейн е продуктова категория. Може да се разглежда като функтор в два аргумента. Функторът Hom е естествен пример; той е контравариантен в единия аргумент, ковариантен в другия. Мултифункторът е обобщение на концепцията за функтор за n променливи.

Тогава какво е монада в програмирането?

От уикипедия: Във функционално програмиране , а монада е вид абстрактен тип данни, използван за представяне на изчисления (вместо данни в модела на домейна). Монади позволете на програмист да верига действия заедно за изграждане на конвейер, в който всяко действие е украсено с допълнителни правила за обработка, предоставени от монада.

Какво е Monad Haskell?

В Haskell а монада е представен като конструктор на тип (наречете го m), функция, която изгражда стойности от този тип (a -> ma) и функция, която комбинира стойности от този тип с изчисления, които произвеждат стойности от този тип, за да произведат ново изчисление за стойности от този тип (ma -> (a -> mb) -> mb).

Препоръчано: