
Zeljko Vrba wrote:
On Tue, Sep 30, 2008 at 12:30:47AM +0300, Peter Dimov wrote:
Zeljko Vrba:
The best way to understand the purpose of Phoenix is, IMHO, to have some first-hand experience with a true functional programming language with type-inference and first-order functions, such as SML. I'm not sure.
The purpose of Phoenix (and Lambda, and boost::bind) is simple: to provide a concise way to create function objects. Most C++ programmers are familiar with the need to write function objects and there is no need to learn SML to take advantage of the basics. Many people start with just needing *_1 < *_2 or bind(&X::name, _1) < bind(&X::name, _2). Some of them simply do not need to go further (or aren't allowed to, by a coding standard).
Good point. But for such simple needs, the manual is then too abstract (there I agree with Roland). And if all you need / are allowed to use is "simple", another thought immediately arises: "this is the same as BLL, just with slightly different syntax". BLL is "a concise way to create function objects", Phoenix is that and a lot more. To understand the "more" part, it helps, IMHO, to know some true FP language.
Agreed. I'll try to cater to the "more" part. Regards, -- Joel de Guzman http://www.boostpro.com http://spirit.sf.net