Recursia în STP: macro-ul care te face să-ți pierzi mințile, dar funcționează
Explorăm cum macroprocesorul STP reușește să execute recursia — și de ce seamănă cu încercarea de a lipi o vază spartă cu superglue.

Te-ai întrebat vreodată dacă poți face un macro să se apeleze singur? Dacă nu, probabil nu ai lucrat cu STP. Acest macroprocesor, folosit de obicei pentru generare de cod sau șabloane, s-a dovedit brusc capabil de recursie adevărată. Și da, sună ca un oxymoron.
Cum funcționează?
STP (Standard Template Processor) nu este exact un instrument asociat cu recursia. De obicei, macro-urile doar înlocuiesc text, ca un copywriter într-o zi proastă. Dar STP permite definirea de macro-uri care se autoapelează, creând bucle. Cu o condiție: trebuie să fii atent la condițiile de ieșire, altfel terminalul tău va intra într-un loop infinit, ca Jira cu 47 de coloane.
- Exemplu: un macro care calculează factorialul. Da, chiar în macro. Arată ca o vrajă, dar funcționează.
- Limitări: STP nu este optimizat pentru recursie adâncă. După 1000 de iterații, crapă pur și simplu, ca un developer după un deploy de noapte.
De ce ai nevoie de asta?
În viața reală, recursia în macro-uri e ca un briceag elvețian: pare mișto, dar îl folosești o dată pe an. Totuși, pentru generarea de structuri complexe de date sau șabloane cu elemente repetitive, e o salvare. De exemplu, poți crea un macro care generează un tabel HTML cu orice nivel de imbricare. Sau o configurație Kubernetes cu o grămadă de blocuri repetitive.
Comentariul studioului METABYTE
Recursia în macro-uri e ca și cum ai găsi un bug în producție și ai realiza că era o funcție. La METABYTE, iubim astfel de soluții neașteptate, dar preferăm ca codul să fie predictibil. Dacă ai nevoie de ceva mai complex decât macro-urile — știm cum să facem fără puzzle-uri recursive.
URMATORUL PAS
Ti-a placut abordarea?
Aplicam aceleasi principii in proiectele clientilor: AI, automatizari, produse care nu se sting dupa lansare.