]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | [/============================================================================== |
2 | Copyright (C) 2001-2010 Joel de Guzman | |
3 | Copyright (C) 2001-2005 Dan Marsden | |
4 | Copyright (C) 2001-2010 Thomas Heller | |
5 | ||
6 | Distributed under the Boost Software License, Version 1.0. (See accompanying | |
7 | file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
8 | ===============================================================================/] | |
9 | ||
10 | [section Introduction] | |
11 | ||
12 | [$images/banner.png] | |
13 | ||
14 | The Phoenix library enables FP techniques such as higher order functions, | |
15 | /lambda/ (unnamed functions), /currying/ (partial function application) and lazy | |
16 | evaluation in C++. The focus is more on usefulness and practicality than purity, | |
17 | elegance and strict adherence to FP principles. | |
18 | ||
19 | FP is a programming discipline that is not at all tied to a specific language. | |
20 | FP as a programming discipline can, in fact, be applied to many programming | |
21 | languages. In the realm of C++ for instance, we are seeing more FP techniques | |
22 | being applied. C++ is sufficiently rich to support at least some of the most | |
23 | important facets of FP. C++ is a multiparadigm programming language. It is not | |
24 | only procedural. It is not only object oriented. Beneath the core of the | |
25 | standard C++ library, a closer look into STL gives us a glimpse of FP already in | |
26 | place. It is obvious that the authors of STL know and practice FP. In the near | |
27 | future, we shall surely see more FP trickle down into the mainstream. | |
28 | ||
29 | The truth is, most of the FP techniques can coexist quite well with the standard | |
30 | object oriented and imperative programming paradigms. When we are using STL | |
31 | algorithms and functors (function objects) for example, we are already doing FP. | |
32 | Phoenix is an evolutionary next step. | |
33 | ||
34 | [endsect] |