Tensors as multilinear maps Sean Carrol's in his book on GR introduces tensors as a multilinear map of a set of dual vectors and vectors onto R. I usually think of tensors as a multidimensional array of numbers with fixed transformation laws, and I am having trouble understanding how tensors could be a multilinear map of a set of dual vectors and vectors onto the set R. More specifically, I am having a hard time understanding the concept of a multilinear map.
 A: First you must understand the idea of a linear map. To understand this, you must understand linearity. We say that an operation $O$ acting on a set of elements $\{v_n\}$ and scalars $a,b,...$ is linear if
$$O(av_1+bv_2)=aO(v_1)+bO(v_2)$$
Say we have some other map $E$ that takes two arguments. $E$ has two "slots". Each slot is linear. This is the idea of multilinearity. 
Now why are tensors multilinear maps? You probably learned in an undergraduate setting that tensors are objects whose components transform a certain way under a change of coordinates. In a more rigorous text (Carroll is an introductory graduate text), we define tensors differently. Let $V$ be a finite dimensional vector space and let $V^*$ be its dual. A tensor, $T$, of type $(k,l)$ over $V$ is a multilinear map 
$$T:\underbrace{V\times\cdots\times V}_l\times\underbrace{V^*\times\cdots\times V^*}_k\longrightarrow\mathbb{R}$$
In other words, $T$ is a machine with $k+l$ slots. You plug in $k$ vectors and $l$ covectors and get a real number (this definition can of course be extended to $\mathbb{C}$). It is fairly obvious that the set of all $(k,l)$ tensors, $\mathcal{T}^k_l$, is a vector space. If the manifold is of dimension $n$, then $\operatorname{dim}\mathcal{T}^k_l=n^{k+l}$ (Wald p.20). You probably know that $\{\partial_\mu\}$ forms a basis on $V$ and $\{dx^\mu\}$ forms a basis on $V^*$. (I have read Carroll, but I skipped the math in the first few chapters because I already knew it. Thus I'm not 100% sure what he covered.) Thus $\{\partial_{\mu_1}\otimes\cdots\otimes\partial_{\mu_k}\otimes dx^{\nu_1}\otimes\cdots\otimes dx^{\nu_l}\}$ is a set of $n^{k+l}$ objects that forms a basis on $\mathcal{T}^k_l$. Just as we expand a vector in terms of its components $X=X^\mu\partial_\mu$ and a covector in terms of its components $\omega=\omega_\mu dx^\mu$, we expand $T$ in terms of its components as
$$T=T^{\mu_1\cdots\mu_k}_{\nu_1\cdots\nu_l}\partial_{\mu_1}\otimes\cdots\otimes\partial_{\mu_k}\otimes dx^{\nu_1}\otimes\cdots\otimes dx^{\nu_l}$$
However, the above definition of $T$ as a multilinear map did not reference coordinates, let alone a basis. Thus $T$ should be a coordinate independent object. We know from calculus how the partial derivatives and differentials that form our basis transform. Convince yourself that we recover the standard tensor transformation requirement by demanding $T$ be left invariant by a coordinate change. 
A: Being a multilinear map and being an array that transforms a certain way aren't really very different.
For instance, if a dual vector $\omega$ sends a vector $v$ to the number $1$, then $\omega(v)=1$.  Since the dual vector $\omega$ is linear, it can be fully specified by saying what it does on the basis vectors $\omega_1=\omega(e_1)$, $\omega_2=\omega(e_2)$, etc.  
And if $v$ can be written as a linear combination of the basis elements $v=v^1e_1+v^2e_2+ ... v^ne_n$ then $\omega(v)=1$ is the same as $v^1\omega_1+v^1\omega_1+v^2\omega_2+... +v^n\omega_n=1$.  You can think of the vector as a column vector and the dual vector as a row vector, and the action of one on the other as the normal 1xn times nx1 matrix multpilication.  
Now lets get to transformations.  If the components of the vector transform in a certain way say by left multiplication by a matrix $T$, then we can make the dual vectors transform by right multiplication by $T^{-1}$.  Then the action of a dual vector on a vector will give the same number.  So if you say that a dual vector is a linear map of vectors, then it's just a function so it doesn't care about a basis, and with these transformations it now doesn't care.
For multilinear functions you now need more that n numbers, so multidimensional arrays of your basis elements to fully specify the function.  But now you want each one to transform according to the same rules so that the action (as a function) become insensitive to whether or not you changed the basis.  The idea is the same, just writing it is harder.
