원시 재귀 함수는 자연수에 대해 정의됩니다. 그러나 개념이 다른 데이터 형식으로 일반화되는 것처럼 보이므로 예를 들어 목록을 이진 트리에 매핑하는 기본 재귀 함수에 대해 이야기 할 수 있습니다. 유추하여 자연수에 대한 부분 재귀 함수는 모든 데이터 유형의 계산 가능한 함수로 훌륭하게 일반화되며 원시 재귀 함수에 대해 동일한 종류의 일반화를 만드는 방법을 이해하고 싶습니다.
직관적으로, 목록 (예 : 연결, 머리와 꼬리 가져 오기, 요소 비교)과 같은 기본 작업을 허용하는 간단한 명령 언어와 반복 횟수를 미리 알아야하는 반복 형식을 정의하려는 경우 ( 불변 목록의 요소를 반복하는 것과 같이) 그런 언어는 목록에 대한 기본 재귀 함수를 계산할 수 있어야합니다. 그러나 이것을 공식적으로 어떻게 이해할 수 있습니까? 더 구체적으로 말하면, 언어가 하위 집합이 아닌 목록에 대한 모든 기본 재귀 함수를 계산한다는 것을 어떻게 증명할 수 있습니까?
분명히하기 위해, 나는 원시 재귀 자체의 작동보다는 단순한 재귀 함수를 잘 정의 된 함수 클래스로 이해하는 데 관심이 있습니다. 나는 일반적인 데이터 구조에 대한 원시 재귀에 쓰여지거나 실제로 자연수 이외의 다른 맥락에서 작성된 것에 대한 포인터에 관심이 있습니다.
업데이트 : 나는 McAllester와 Arkoudas의 Walther Recursion이라는 논문 에서 답 을 찾았을 것입니다. ( CADE 1996의 절차 .) 이것은보다 강력한 Walther 재귀뿐만 아니라 일반화 된 버전의 원시 재귀를 포함하는 것으로 보인다. 이 내용을 요약하면 자체 답변을 작성하려고하지만 그 동안이 메모는 동일한 질문을 가진 다른 사람들에게 도움이 될 수 있습니다.