Thanks by the help.
But, it gives me the impression of the fact that the active modules are not active, but "passive", since:
- Therefore I have proven, an active module can't have a predicate "main/0" or "main/1" (and if it has, not serves to him as nothing because upon starting the active module, the the "main" predicate is not executed).
- All the agents (active modules) on started are listening on its port to the arrival of some message.
- Because the two previous reasons, I must to have a single agent that make the paper of "initiador", the one which can have defined the predicate "main". This initiator passes a message to the "agentI", later on the "agentI" calls to the "agentJ", and so on.
What mean with this, is that IN ALL MOMENT CAN HAVE 1 COMMUNICATION (AMONG 2 AGENTS); IT'S IMPOSSIBLE THAT, FOR EXAMPLE, THEY HAPPEN THESE 3 COMMUNICATIONS SIMULTANEOUSLY: agent1-------->agent5 agent3<--------agent12 agent9<--------agent7
I am in what is certain?
Something else: Could I use the Module Qualification instead of the Higher Order? That is to say, to use send(I, Message, Receiver) :- Receiver:receive(Message, I). instead of send(I, Message, Receiver) :- Receiver(Message, I).
Finally, you said me that you probed the code that I sent (with you modifications). Could you give me the source code (the ".pl" files) that you have proven?
__________________________________________________ Do You Yahoo!? Yahoo! Games - play chess, backgammon, pool and more http://games.yahoo.com/