Je suis un peu louche sur ce que vous demandez exactement, mais je vais essayer de vous aider à démarrer.
Les représentations liste profonde de la structure de l'arbre que vous avez mentionné devrait ressembler à ceci:
'(a6 (a1) (a2) (p1 (a1) (a2)))
il y a environ un an, j'ai écrit quelques articles de blog que vous pouvez trouver utile. Trees in Scheme: Representation et Trees in Scheme: Parsing. Dans l'article "Parsing", je démontre l'utilisation de la récurrence réciproque (une technique récursive dans laquelle deux procédures sont définies les unes par rapport aux autres) pour analyser efficacement les arbres. Cela devrait être utile.
Enfin, je vous recommande également de lire le chapitre 18 de Simply Scheme pour une introduction assez approfondie à ce sujet.
Bonne chance.