版权所有 © 2002-2005, 2010, 2014, 2015 Joel de Guzman, Dan Marsden, Thomas Heller, John Fletcher
根据 Boost 软件许可证版本 1.0 发布。(参见随附文件 LICENSE_1_0.txt 或在 https://boost.ac.cn/LICENSE_1_0.txt 复制)
函数式编程之所以被称为函数式编程,是因为程序完全由函数组成。主程序本身被写成一个函数,它接收程序的输入作为其参数,并输出程序的输出作为其结果。通常,主函数是根据其他函数定义的,而其他函数又根据更多的函数定义,直到底层函数是语言的原始元素。
John Hughes-- Why Functional Programming Matters
Phoenix 在 C++ 中实现了函数式编程 (FP)。Phoenix 的设计和实现深受 Yannis Smaragdakis 和 Brian McNamara 的 FC++ 以及 Jaakko Jaarvi 和 Gary Powell 的 BLL (Boost Lambda Library) 的影响。Phoenix 是 FC++ 和 BLL 的结合,并使用了 Spirit 内联解析器中使用的实现技术。
Phoenix 是一个纯头文件库。其设计具有高度的模块化。用户可以仅提取并使用库的一小部分,字面意义上将库拆分成小的部分,而无需担心这些部分将无法工作。该库被组织成高度独立的模块和层。
Phoenix 库被组织成逻辑模块。本文档为库中的每个模块提供了用户指南和参考。一个简单清晰的代码示例胜过百行文档;因此,用户指南通过大量带有分步注释和解释的示例进行呈现。用户指南基于大量示例。
在每个模块的用户手册部分,尽可能避免前瞻性信息(即引用尚未讨论过的具体信息)。然而,在许多情况下,高级但相关的主题不可避免地会穿插在正常的讨论流程中。为缓解此问题,在初次阅读时可以跳过被归类为“高级”的主题。
一些图标用于标记某些具有指示性意义的主题。这些图标出现在一些文本之前,表示:
除非另有说明,否则假定
using namespace boost::phoenix;