Les fonctions récursives primitives sont définies sur les nombres naturels. Cependant, il semble que le concept devrait se généraliser à d'autres types de données, permettant de parler de fonctions récursives primitives qui mappent des listes à des arbres binaires, par exemple. Par analogie, les fonctions récursives partielles sur les nombres naturels se généralisent bien aux fonctions calculables sur n'importe quel type de données, et j'aimerais comprendre comment faire le même type de généralisation pour les fonctions récursives primitives.
Intuitivement, si je devais définir un langage impératif simple qui permettait des opérations de base sur, disons des listes (comme la concaténation, prendre la tête et la queue, la comparaison des éléments) et une forme d'itération qui nécessite de savoir à l'avance combien d'itérations se produiront ( comme itérer sur les éléments d'une liste immuable), alors un tel langage devrait tout au plus être capable de calculer les fonctions récursives primitives sur des listes. Mais comment puis-je comprendre cela formellement, et plus précisément, comment pourrais-je prouver que mon langage calcule toutes les fonctions récursives primitives sur des listes et pas seulement un sous-ensemble d'entre elles?
Pour être clair, je suis intéressé à comprendre les fonctions récursives primitives comme une classe de fonctions bien définies (si elles le sont), plutôt que simplement par le fonctionnement de la récursion primitive elle-même, ce qui semble simple. Je serais intéressé par des pointeurs vers tout ce qui a été écrit sur la récursivité primitive sur des structures de données générales, ou même dans un contexte autre que les nombres naturels.
mise à jour: j'ai peut-être trouvé une réponse, dans un article intitulé Walther Recursion , par McAllester et Arkoudas. (Actes de CADE 1996 ). Il semble contenir une version généralisée de la récursion primitive ainsi que la récursion Walther plus puissante. J'ai l'intention d'écrire une auto-réponse une fois que j'ai digéré cela, mais en attendant, cette note pourrait être utile à d'autres personnes ayant la même question.