Размышлял тут на тему моноидов и вообще "обобщённых операций" над множествами...
И "неожиданно" пришёл к выводу, что операции isNull (пустое множество) и isAll (всё возможное множество) - крайне полезны для реализации других операций над множествами.
Говоря "программистским языком" - они вообще синглетоны могут возвращать.
При этом:
isNull * isNull = isNull
isAll * isAll = isAll
isNull * isAll = isNull
isNull + isNull = isNull
isAll + isAll = isAll
isNull + isAll = isAll
isNull - isNull = isNull
isAll - isAll = isNull
isNull - isAll = isNull
isAll - isNull = isAll
-----
isNull * X = isNull
isAll * X = X
isNull + X = X
isAll + X = isAll
isNull - X = isNull
isAll - X = isAll - X
X - isNull = X
X - isAll = isNull
И "неожиданно" пришёл к выводу, что операции isNull (пустое множество) и isAll (всё возможное множество) - крайне полезны для реализации других операций над множествами.
Говоря "программистским языком" - они вообще синглетоны могут возвращать.
При этом:
isNull * isNull = isNull
isAll * isAll = isAll
isNull * isAll = isNull
isNull + isNull = isNull
isAll + isAll = isAll
isNull + isAll = isAll
isNull - isNull = isNull
isAll - isAll = isNull
isNull - isAll = isNull
isAll - isNull = isAll
-----
isNull * X = isNull
isAll * X = X
isNull + X = X
isAll + X = isAll
isNull - X = isNull
isAll - X = isAll - X
X - isNull = X
X - isAll = isNull
Комментариев нет:
Отправить комментарий