自从欧金尼奥·莫吉(Eugenio Moggi)的工作以来,有关在计算理论中使用单核词的工作已取得了许多进展。我无法提供全面的说明,但是我很熟悉这里的某些观点,其他观点也可以得到他们的答案。
单子的具体例子
您不必一直学习超常规理论。有一些单子的例子非常有趣并且足够复杂,无法填满整个本科论文。
我非常喜欢Dan Piponi的博客,他在其中提供了令人惊奇的示例,说明如何使用monad来混合函数式编程和数学。例如,通过monad搜索关于打结和编织的著作。
Martin Escardo和Paulo Oliva在选择函数的上下文中给出了另一个值得研究的mondas实例,请参见它们的选择函数,小节递归和向后归纳法,或者也许是想先读一下What Sequential Games,Tychonoff定理和双重否定移位有共同点(此处有相关的Haskell和Agda文件)。
数学背景
Monad来自类别理论,并且比Eugenio Moggi年龄大得多。如果您数学上很喜欢,可以学习背景理论。例如,您可以攻击贝克的单性定理。有理论的计算机科学家永远不会知道太多数学。
主题变化
您可能会看到严格意义上不是单子的东西。
例如,康纳·麦克布赖德(Connor McBride)和罗斯·帕特森(Ross Paterson)的成语:带效果的应用程序编程显示了人们如何将Monad泛化为实际上相关且有见地的东西。
或者您可以看看如何使用comonads来建模计算效果。有人应该为该主题提供一些参考,但是一个很好的开始可能是David Overtone的幻灯片。
模态类型理论
在同伦类型理论中以及一般在类型理论中,单子形式为模态类型理论。最近,在同态类型理论中已经考虑了模态类型理论,因为截断算子是模态算子的示例。然后是内聚同伦类型理论,其中模态运算符(单子)起着至关重要的作用。
代数效果和处理程序
[免责声明:部分吹响我自己的角。]
不久前,戈登·普洛特金(Gordon Plotkin)和约翰·鲍尔(John Power)认为许多计算效果不仅是单子,而且是由代数理论产生的特殊单子。这导致了对计算效果的全新处理,即代数效果。后来,Gordon Plotkin和Matija Pretnar引入了处理程序,并与代数效应一起形成了非常好的计算效应理论。这种方法的优点之一是可以容易地组合代数理论,而单子表达式则不能。
您可以研究代数效应与单子的确切关系。您可以看看人们是如何实现代数效果和处理程序的,例如以Eff语言或Haskell作为库。这或多或少是当前的研究。