In the developments I've seen of primitive recursive and computable functions, the functions always have codomain $\mathbb{N}$, but are allowed to have domain $\mathbb{N}^{m}$ for any natural number $m$. This seems odd to me---treating the domains and codomains as fundamentally different.

One solution would be to allow functions $f\colon \mathbb{N}^m\to \mathbb{N}^n$ for any natural numbers $m,n$. Of course, such a function is really just an $n$-tuple of functions $(f_1,f_2,\ldots, f_n)$ where $f_i$ is just the $i$th coordinate of $f$, and computability for $f$ would amount to computability for each $f_i$.

However, I'm more interested in the opposite direction: limiting the domain to always be $\mathbb{N}$. This seems to match, more naturally, what an idealized machine is doing by taking in a single natural number and spitting out a single natural number (or not halting). Of course, *a fortiori*, one could develop the recursive functions as usual, look at the subclass of functions whose domains are $\mathbb{N}$, and called these the *limited domain computable functions*, and then show that from these we can reconstruct the non-limited functions in a simple way.

My question is if there is a more natural approach. Just as the recursive functions are built up from some starting functions, using very limited and natural operators, I wonder if there are ways to build up the "limited domain computable functions" similarly, in a non-"*ad hoc*" way. (For instance, it would be nice if we could do it without the need to develop a universal Turing machine first.)

In other words: Does the extra generality in the domain *necessarily* simplify the development of computable functions?

Recursive number theory, where he develops the entire theory of primitive recursive functions and recursive functions in an absolutely minimalistic manner. Primitive recursive functions $\mathbb{N}^2\to\mathbb{N}$ are unavoidable but he carefully isolates what is essential about these. IIRC, the key thing is to get to $\max(m,n) = (m \mathop{\dot{\smash-}} n) + n$, where ${\dot{\smash-}}$ denotes truncated subtraction. $\endgroup$ – François G. Dorais♦ Aug 3 '20 at 21:28