"monadic structure" 和 "element of a structure" 在任意 Monad 的上下文中准确意味着什么?

What does a "monadic structure" and "element of a structure" precisely mean in the context of arbitrary Monad?

通读 Control.Monad 的文档,我发现了 mapM 的描述:

Map each element of a structure to a monadic action, evaluate these actions from left to right, and collect the results

我很感兴趣,“结构元素”对于任意 monad 意味着什么?例如,StateIO monad?什么结构? 我知道 mapM 函数的作用,并且在 mapM 的描述中这个特定单词的 语义 中更有趣。这个“结构”是否与“代数结构”的概念有某种联系?

Structure is a set with one or more finitary operations defined on it that satisfies a list of axioms.

如果是这样,那么我要求的这个结构(载体组)的元素是什么,例如IO单子?一般来说?

这里的'structure'是Traversableclass的实例(即mapM签名中的类型构造函数t)。

"Element of a structure" 对于任意 monad 完全没有任何意义,因为它不引用 monad。您所指的 mapMTraversable 类型类的成员,它所指的结构是 TraversableTraversable 是一种可以映射的数据结构,例如列表或树。 "Element of a structure" 引用列表的元素。