Applicative: The Forgotten Functional Pattern
11.33 MB
141 页
0 评论
| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .pdf | 3 |
| 摘要 | ||
文档介绍了Applicative这一功能模式的历史、机制及其在C++中的应用。Applicative介于Functor和Monad之间,195L提到在GHC 7.10中被引入,并可以并行评估参数。其核心是apply函数,用于在容器中应用函数,支持多参数函数的应用。文档还提到了std::optional和std::expected等实例以及其在解析和连续性中的应用。 | ||
| AI总结 | ||
《Applicative: The Forgotten Functional Pattern》摘要
本文概述了函数式编程中的Applicative模式,强调其重要性及在C++中的应用。以下是核心内容:
1. **Applicative的基本特征**:
- Applicative是一种函数式编程模式,介于Functor和Monad之间。
- 每个Monad也可以是Applicative,但Applicative并不一定是Monad。
- Applicative的核心在于`apply`函数,用于在函子中应用函数,尤其适用于多参数函数的应用。
2. **Applicative的历史与发展**:
- Applicative最早在2008年Conor McBride和Ross Paterson的《Applicative Programming with Effects》中提出。
- 2014年,GHC 7.10将Applicative正式引入,作为Functor和Monad之间的中介。
- 在C++中,Applicative和Monad模式自C++11后逐渐出现。
3. **Applicative的优势**:
- 内在地支持并行性。Applicative可以并行评估多个参数。
- 在C++中,Applicative的实现可以通过`fmap`或`apply`函数实现,具有一定的工程灵活性。
4. **常见的Applicative实例**:
- `std::optional`
- `std::expected`
- Ranges(包括同构和异构 ranges)
- 其他实用模式,如`zip`、笛卡尔积、解析和续延。
总结:Applicative是一种连接Functor和Monad的重要模式,具有并行性优势和广泛的应用潜力,尤其在C++中,通过合理的工程实现,可以更高效地解决问题。 | ||
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
129 页请下载阅读 -
文档评分













