1980年代晚期和1990年代早期的研究，确立了单子可以将看似完全不同的计算机科学问题置于一个统一的函数式模型之下。范畴论还提供了叫做单子定律的一些形式要求，任何单子都应当满足它并可以用它来验证单子代码。通过单子，编程者可以把复杂的函数序列变成简洁的管道，它抽象出了辅助数据管理、控制流或副作用。单子可以简化范围宽广的问题，比如处理潜在（通过codice_1单子），或将值保持在一个灵活而良好形成的列表中（使用codice_2单子）。因为单子使得某种计算的语义明确，它们还可以用来实现便捷的语言特征。一些语言