Una regola contiene a sua volta la chiamata di altre regole, ma se chiama se stessa?
Il primo cerchio nero, è seguito da un cerchio più piccolo e più chiaro, che a sua volta …
startshape CERCHI1 shape CERCHI1 { CIRCLE [] CERCHI1 [ brightness 0.2 // più chiaro size 0.75 // più piccolo ] }
Context Free smette di rincorrere le chiamate ricorsive quando la dimensione della figura non è più significativa, altrimenti il rendering richiederebbe tempi infiniti!
Le chiamate ricorsive possono essere due
startshape CERCHI2 shape CERCHI2 { CIRCLE [] CERCHI2 [ brightness 0.2 size 0.5 x -0.25 ] CERCHI2 [ brightness 0.2 size 0.5 x +0.25 ] }
Quattro chiamate ricorsive… il tempo di rendering aumenta notevolmente
startshape CERCHI4 shape CERCHI4 { CIRCLE {} CERCHI4 [ brightness 0.2 size 0.45 x -0.25 ] CERCHI4 [ brightness 0.2 size 0.45 x +0.25 ] CERCHI4 [ brightness 0.2 size 0.45 y -0.25 ] CERCHI4 [ brightness 0.2 size 0.45 y -0.25 ] }
Si rende necessario ridurre size (basta già da 0.5 a 0.45) per raggiungere prima la fine della ricorsione.