Recursion algorithms can have many uses including traversing or building "tree" data structures. Recursion in Pipeline Pilot is possible through the creation of a subprotocol that has a copy of itself in side of it. Like all recursion algorithms, there must also be an exit point at which the data record can exit the recursive subprotocol. Attached are two example protocols that make use of a recursive subprotocol. The first calculates a number's factorial using a recursive algorithm (similar to http://en.wikipedia.org/wiki/Recursion_(computer_science)#Factorial). The second protocol accepts a "word tree" and extracts all of the words contained in the tree. In both protocols, you must save the recursive subprotocol to your server before running the protocol.
If you have a recursive subprotocol of your own or an idea for one, share it in the comments below!