Functions over $R$ such that $f(xy) = f(x)f(y)$ 
Possible Duplicate:
If $f(xy)=f(x)f(y)$ then show that $f(x) = x^t$ for some t
Solution for exponential function's functional equation by using a definition of derivative 

I can think of three functions that satisfy the condition $f(xy) = f(x)f(y)$ for all $x, y$, namely


*

*$f(x) = x$

*$f(x) = 0$

*$f(x) = 1$


Are there more? 
And is there a good way to prove that such a list is exhaustive (once expanded to include any other examples that I haven't thought of)?
 A: Here is one more:
$$
f(x)=
\begin{cases}
0&\mathrm{for}& x=0,\\
1&\mathrm{for}& x\neq 0.
\end{cases}
$$
A: Since $f(x) = f(1)f(x)$ for all $x$, either $f(1)=1$, or else $f(x)=0$ for all $x$. Assume $f(1)=1$. If $f(a)=0$ for some $a\neq 0$, then $f(b) = f(a)f(b/a) = 0$ for all $b$, so we may assume $f(a)\neq 0$ for all $a\neq 0$. 
Also, $f(1) = f(-1)^2$, so either $f(-1)=1$ or $f(-1)=-1$.  If $a\gt 0$ then $f(a)=(f(\sqrt{a}))^2$, so $a\gt 0$ implies $f(a)\gt 0$. Thus, if $f(-1)=-1$ then $f$ is odd on the nonzero numbers; and if $f(-1)=1$ then $f$ is even.
As for $f(0)$, since $f(0)=f(0)^2$, either $f(0)=0$ or $f(0)=1$. If $f(0)=1$, then $1=f(0) = f(0a) = f(a)$, so $f(a)=1$ for all $a$. 
So we have a couple of "degenerate" solutions: $f(a)=0$ for all $a$; $f(a)=1$ for all $a$; and $f(a)=1$ for all $a\neq 0$ and $f(0)=0$. 
So now assume that $f(1)=1$, $f(0)=0$, $f(a)\gt 0$ for all $a\gt 0$.
Now consider $g(x) = \ln(f(e^x))$. Then
$$g(x+y) = \ln(f(e^{x+y})) = \ln(f(e^xe^y)) = \ln (f(e^x)f(e^y)) = \ln(f(e^x))+\ln(f(e^y)) = g(x)+g(y),$$
so $g$ satisfies Cauchy's Functional Equation. 
Both the "even" and the "odd" version of $f$ yield the same $g$, since $g$ only depends on the values of $f$ on the positive reals.
Conversely, given any $g\neq 0$ that satisfies Cauchy's Functional Equation, define $h$ on the positive reals by $h(x) = \exp(g(\ln(x))$. Then $h(xy) = h(x)h(y)$, and $h(x)$ is not the constant function $1$. Letting $h(0)=0$, you obtain two functions $f$ that satisfy your original equation: $f(x) = h(|x|)$, and $f(x) = \mathrm{sgn}(x)h(|x|)$.
Now, I cheated, because Cauchy's Functional Equation does not have an explicit complete list of solutions, but it's been well-studied, so you might as well look into that instead of trying to re-invent the wheel.
