Why is a bilinear map $M \times N \to B$ the same as a homomorphism $M \to Hom_R(N,P)$? Eisenbud's "Commutative Algebra" states that: 
It is elementary that a bilinear map $M \times N \to P$ is the same as a homomorphism $M \to Hom_R(N,P)$ 
While this makes some intuitive sense I keep hand waving an explanation to myself. 
I would really like to see it done out at least once. 
 A: Assume $\varphi: M\times N \to P$ is a bilinear map, then the corresponding homomorphism is $\phi: M\to \hom_R(N,P)$, with $\phi(m)(n)=\varphi(m,n)$. We can check $\phi(m)$ is a homomorphism from $N$ to $P$ using the fact that $\varphi$ is bilinear.
Convesely, if  $\phi: M\to \hom_R(N,P)$ is a homomorphism, then the corresponding bilinear map is $\varphi: M\times N \to P$, with $\varphi(m,n)=\phi(m)(n)$.
A: Hint: To a bilinear map $f:M\times N\rightarrow P$ associated $H_f:M\rightarrow Hom_R(N,P)$ defined by $H_f(m)(n)=f(m,n)$.
And to $H:M\rightarrow Hom_R(N,P)$ associate $H_b:M\times N\rightarrow P$ defined by $H_b(m,n)=H(m)(n)$  show that the correspondence are inverse each other
A: Given a map $f : M\times N \to P$ which is linear in the second argument, there is an associated map $F : M \to \operatorname{Hom}_R(N, P)$ defined by $F(m)(n) = f(m, n)$. If $f$ is also linear in the first argument (i.e. $f$ is bilinear), then $F$ is a homomorphism.
Conversely, given a map $G : M \to \operatorname{Hom}_R(N, P)$, there is an associated map $g : M\times N \to P$ given by $g(m, n) = G(m)(n)$. Note that $g$ is linear in the second argument, and if $G$ is a homomorphism, $g$ is also linear in the first argument (i.e. $g$ is bilinear).
This establishes a natural bijection between bilinear maps $M\times N \to P$ and homomorphisms $M \to \operatorname{Hom}_R(N, P)$.
A: Eisenbud's statement is morally correct, but not strictly true with the usual set-theoretic representations of functions (or any representation that I know of). Writing $X \to Y$ for the set of set-theoretic functions from $X$ to $Y$, then there is a 1-1 correspondence between $X \times Y \to Z$ and $X \to (Y \to Z)$ that associates $f:X \times Y \to Z$ with $x \mapsto y \mapsto f(x, y)$ and associates $g : X \to (Y \to Z)$ with $(x, y) \mapsto g(x)(y)$. This is known (to computer scientists and logicians at least) as currying and uncurrying.
If you look at functions that are required to preserve algebraic structure, this correspondence doesn't work in general. However, for modules over a ring, the correspondence does restrict to a 1-1 correspondence (indeed an isomorphism of modules) between bilinear maps $M \times N \to P$ and homomorphisms $M \to \mbox{Hom}_R(N, P)$. ($\mbox{Hom}_R(N, P)$ is a subset of the set $N \to P$ of all functions from $N$ to $P$). This is the sense in which Eisenbud means the two things are the same.
