Is there a computable enumeration of a set of all computable functions $\mathbb{N} \to \mathbb{N}\cup\{\infty\}$

computability

Consider the set $F$ of all functions from natural numbers to natural numbers (possibly with undefined points) which are computable (implementable in python). Does there exist an enumeration of them $F=\{f_i\}_{i\in\mathbb{N}}$ such the function $g(i, x) := f_i(x)$ is computable?

I know that if we allowed repetitions in the enumeration, the answer would be yes via the universal machine (enumerating algorithms instead of functions is possible).

I know that if we did not allow undefined points, the answer would be no via the diagonal argument on function $g'(x):=g(x, x) + 1$ which would have to be computable but could not coincide with any $f_i$.

However, I can't figure out the middle case. My hunch is that the answer is no.

Best Answer

Note that the title question does not match the body. I'll answer the question in the body, since the title question is trivial.

Perhaps surprisingly, the answer is yes! That is:

There is a partial computable binary function $f(x,y)$ such that for all partial computable unary functions $g(x)$ there is exactly one $n$ with $$g(-)\simeq f(-,n).$$

Such an $f$ is called a Friedberg enumeration (or numbering); the existence of Friedberg enumerations was first proved by (unsurprisingly) Friedberg, but a simpler argument was later given by Kummer. I've written a bit more about these at CSSE and at MO.

Related Question