# Fractal Plant

See Wikipedia.

The production rules for this curve is:

variables : X F constants : + − [ ] start : X rules : (X → F+[[X]-X]-F[-FX]+X), (F → FF) angle : 25°

First you need to initialize an empty stack. This follows the LIFO (Last in, First Out) method to add and remove elements. Here, F means "draw forward", − means "turn right 25°", and + means "turn left 25°". X does not correspond to any drawing action and is used to control the evolution of the curve. The square bracket "[" corresponds to saving the current values for position and angle, so you push the position and angle to the top of the stack, when the "]" token is encountered, pop the stack and reset the position and angle. Every "[" comes before every "]" token.