
On Mon, Sep 29, 2008 at 10:20:25PM +0200, Roland Bock wrote:
For example, the actor's page. It says that it is the main concept and it shows a template and with one parameter, which does not appear anywhere near the template's body. And that's pretty much it. It does not say anything about when it is used, by whom, or what the necessary characteristics of the template argument "Eval" are. Nothing. Except: "Don't worry about the details, for now."
Phoenix manual is meant to be read and understood sequentially. The Actors chapter is roughly at 1/3 of the manual. Actor is a main concept in that it is in the lowest layer of the library (see the Organization chapter), and you need to understand it if you're going to extend Phoenix. You really don't need to bother with details to use ready-made components (while_, operators, bind, etc.). See "Inside Phoenix" chapter for an in-depth explanation of how actors work..
But I know that the concepts/ideas for this thing need to be explained before going on.
I do not think that Phoenix manual is the right place to explain FP concepts. Trying to do so would only get the job half-done, and in this case it might be worse than nothing at all. Though, the introduction _could_ link the concepts ("lambda", "currying", etc.) to some online reference.
You could use this in the "real world example". Replace vector<int> by vector<A> and then find objects with object.member%2==1. I assume that would help me.
You would use bind there. 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 that any amount of writing can replace direct experience. (And I'm not sure either that one should try to learn FP concepts with a hybrid solution that C++ and Phoenix is.)