Примітивні рекурсивні функції визначаються над натуральними числами. Однак, схоже, що концепція повинна узагальнити інші типи даних, дозволяючи говорити про примітивні рекурсивні функції, які, наприклад, відображають списки до бінарних дерев. За аналогією, часткові рекурсивні функції над натуральними числами добре узагальнюють обчислювальні функції будь-якого типу даних, і я хотів би зрозуміти, як зробити такий же узагальнення для примітивних рекурсивних функцій.
Інтуїтивно зрозуміло, якби я визначив просту імперативну мову, яка дозволяла виконувати основні операції, наприклад, списки (наприклад, конкатенація, взяття голови та хвоста, порівняння елементів) та форму ітерації, яка вимагає заздалегідь знати, скільки ітерацій відбудеться ( наприклад, ітерація над елементами у незмінному списку), тоді така мова повинна бути, максимум, у змозі обчислити примітивні рекурсивні функції над списками. Але як я можу зрозуміти це формально, а точніше, як би я міг довести, що моя мова обчислює всі примітивні рекурсивні функції над списками, а не лише їх підмножиною?
Щоб було зрозуміло, мені цікаво розуміти примітивні рекурсивні функції як чітко визначений клас функцій (якщо вони справді є), а не просто в роботі самої примітивної рекурсії, яка здається прямолінійною. Мені було б цікаво вказувати на все, що написано на примітивній рекурсії на загальні структури даних, або взагалі в будь-якому контексті, крім природних чисел.
оновлення: я, можливо, знайшов відповідь у документі під назвою Вальтер Рекурсія Макаллестера та Аркудаса. (Праці CADE 1996 р .) Це, здається, містить узагальнену версію примітивної рекурсії, а також більш потужну рекурсію Вальтера. Я маю намір написати самовідповідь, як тільки це перекопаю, але тим часом ця примітка може бути корисною іншим із тим самим питанням.