So that puts you in a "nice" place to begin with. The general notion of a mathematical function (objected to by some) evolved from functions based on a "rule" to functions based on arbitrary collections of ordered pairs meeting certain well-definition requirements.
I have not found any direct text to confirm, but the book I have that examines Wittgenstein's theories attributes this definition of function to Dirichlet.
Naturally, you do not get to the theory of algorithms in the constructive sense of Markov and Sanin until you stop defining functions according to rules. Furthermore, as more creative people started to consider what kinds of rules could be used to formulate functions, odd kinds of mathematics had to be given an account.
Your example of 1/3 is actually a rational number. And, my post explicitly does what you do with that example. I simply used the representation of state tables so that I could contrast the situation with a real, irrational state table and so that I could address the lossless/lossy character of deciding between two names, each of which could be representable.
But, I am thrilled to see that others are finally looking at questions to which I have been directing my attention for years.