PROG was Koza's attempt to provide block-like functionality similar to Lisp's "progn" or "prog1" functions. But in Lisp, ALL functions return values. (progn . . . . ) returns the value of the last item evaluated within it. prog1 returns the value of the first item. There's absolutely no reason why ECJ can't be set up to do that also. All nodes can return values if you wish. If you're new to GP as well as ECJ, then ECJ may be somewhat daunting. And if you're doing control of an *actual* robot, this is probably going to be too slow as evolutionary computation methods generally take a very large number of evaluations. I presume you're doing this in simulation? If so, what simulator? Robotics projects are always interesting to our group -- see http://cs.gmu.edu/~eclab/ robots/flockbots/ Sean On Jun 12, 2006, at 2:44 PM, Serethos wrote: > Im very new to ECJ and GP so I need a little Basic help. I want to > > realize a control program for a robot with servo motors and some IR- > Sensors. To control him I take something like that: > > Terminal Set = {IR0, IR1, ..IRn, Constant:0.255} > Function Set = {+, -, /, *, sleep(x), SetServo0, > SetServo1,..SetServon, Proc4, <, >, ...} > > As I understand the Proc-Function (like in Koza's Ant control) is > only a way to express a serial chain of commands. It has no return > value and therfore can't be a node to most other functions like +, > -, sleep etc. (while normal arithmetic functions with a return > value are "node-compüatible" to each other) > > How can I manage this constraints?