Я пытаюсь понять концепцию monad
, смотрю это отличное видео, Брайан Бекенд пытается объяснить, что такое монада.
Когда он говорит о monoid
, это набор типов, у него есть правило композиции, и эта композиция должна подчиняться 2 правилам:
- ассоциативный:
x @ (y @ z ) = (x @ y) @ z
- особый участник в коллекции:
x @ id = x and id @ x = x
Я использую символ @
, представляющий композицию. id
означает специальный член.
Второй момент - это то, что я пытаюсь понять. почему это важно? что, если нет такого специального члена?
Когда я изучаю новую концепцию, я всегда стараюсь связать эти абстрактные концепции с некоторыми другими конкретными вещами, чтобы я мог полностью понять и выучить их наизусть.
Итак, я пытаюсь связать monad
и monoid
с lego
. Таким образом, все строительные блоки в наборе лего образуют коллекцию. и правило композиции объединяет их в новую форму строительных блоков. и очевидно, что композиция подчиняется первому правилу: ассоциативность. Но нет специального строительного блока, который можно скомпоновать с другим строительным блоком и получить то же самое. Таким образом, он не подчиняется второму правилу.
Но лего по-прежнему очень компонуем. Чего не хватает или чего не хватает, когда LEGO не подчиняется второму правилу? Каковы последствия?
Или, скажем так, по сравнению с другими monoid
, которые подчиняются всем этим правилам. Какая особенность есть у других monoid
, но нет у лего?