版权所有 © 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-- 为什么函数式编程很重要
Phoenix 支持在 C++ 中进行函数式编程 (FP)。Phoenix 的设计和实现深受 Yannis Smaragdakis 和 Brian McNamara 的 FC++ 以及 Jaakko Jaarvi 和 Gary Powell 的 BLL (Boost Lambda 库) 的影响。Phoenix 融合了 FC++ 和 BLL,并使用了 Spirit 内联解析器中使用的实现技术。
Phoenix 是一个仅包含头文件的库。它的设计非常模块化。人们可以只提取和使用完整库的一小部分, буквально 将库分成小块,而不必担心这些块会失效。该库按高度独立的模块和层进行组织。
Phoenix 库按逻辑模块组织。本文档提供了库中每个模块的用户指南和参考。一个简单明了的代码示例胜过一百行文档;因此,用户指南中提供了大量的示例,并以逐步的方式进行注释和解释。用户指南基于示例:大量的示例。
每个模块的用户手册部分都尽可能避免前向信息(即引用尚未讨论的特定信息)。但是,在许多情况下,高级但相关的主题不可避免地会穿插在正常的讨论流程中。为了缓解这个问题,归类为“高级”的主题在初读时可以跳过。
一些图标用于标记某些主题,指示其相关性。这些图标位于某些文本之前,表示
除非另有说明,否则假定 using namespace boost::phoenix;