我认为我可能发现了一个通用的、虽然有些退化的单子作用。伪 Haskell:
instance (Monoid m, Monoid n) => Act m n where
act mempty x = x -- let's pretend that we can use `mempty` as a pattern
act _ _ = mempty
m
对 n
的操作是将 n
设置为 mempty
,除非 m
本身为空。
这是一个守法的幺半群操作吗?是否有其他人发明过此操作?如果有,它的名称是什么?