Demonstrate currying via homomorphism You can demonstrate currying for two-argument functions is possible showing there's a isomorphism between $(A^B)^C \cong A^{B \times C}$. That is, the set of functions $(C \rightarrow B) \rightarrow A$ is isomorphic to the set $(B \times C) \rightarrow A$. 
To do that you can show there's a bijection between these two function sets, effectively demonstrating they are equipotent: $(A^B)^C \thicksim A^{B \times C}$.
What's the demonstration for that?
 A: The only real problem here is notation -- we're talking about functions whose values are functions, so we end up with chains like $f(x)(y)$ which is the function that $f$ returns at $x$, applied to $y$, and so forth.
Once we're over that (conceptual) hurdle, we can simply write
$$ f:(A^B)^C\to A^{B\times C} \qquad f(g)(b,c) = g(c)(b) $$
and then show that this $f$ is a bijection -- which involves either some notationally tedious but otherwise trivial element chasing, or defining the inverse function explicitly:
$$ f^{-1}:A^{B\times C}\to (A^B)^C \qquad f^{-1}(h)(c)(b) = h(b,c) $$
and then making sure that $f\circ f^{-1}$ as well as $f^{-1}\circ f$ are the identity on $A^{B\times C}$ and $(A^B)^C$, respectively.
A: Hint: $(A^B)^C$ is the set of maps from $C$ into $A^B$ (which itself is the set of maps from $B$ into $A$) and $A^{B\times C}$ is the set of maps from $B\times C$ into $A$.  
Define your bijection $\Phi: A^{B\times C}\rightarrow (A^B)^C$ by sending a map $f:B\times C\rightarrow A$ to the map $g: C\rightarrow A^B$ defined by $g: c\mapsto f(-,c)$ (where $f(-,c):B\rightarrow A$ is the map $f(-,c): b\mapsto f(b,c)$).
