This sequence of functions doesn't converge uniformly on [0,1], but why is this the reason? This is an example from Stoll's Introduction to Analysis. I'm struggling to understand why there's a contradiction here, though I think I'm on the verge of understanding it, but I'd like to understand it more formally. 

My intuitive reaction is that since we're choosing $x$ to be a member of $[0,1)$, then I can make those $x^n$ as small as I like, so given any positive epsilon, if I choose a value of $n$ such that the "biggest" $x$ in $[0,1)$ is smaller than that epsilon, then it works for all relevant $x$. Of course I know there is no "biggest" member of this set, so I suspect that each time I choose an $n$ that I think satisfies the inequality I necessarily miss infinitely many relevant $x$, but I'm having trouble demonstrating that to myself. 
 A: Hint:  Consider $|f_n(x_n)-0|$ with $x_n = 1 - 1/n.$  What is $\displaystyle\lim_{n \to \infty}\left(1-1/n\right)^n?$
A: If a sequence of continuous functions converges uniformly, then the limit function is continuous. Since the limit function isn't continuous, the convergence isn't uniform.
For a more direct argument though, consider
$$a_n = \sup_{x\in[0,1]}|f_n(x)-f(x)|=\sup_{x\in[0,1)}x^n = 1.$$
Since $\lim_{n\to\infty}a_n\ne0$, the sequence of functions does not converge uniformly.
A: The rough idea behind uniform convergence is that for any $\varepsilon >0$, "there exists a tube of radius $\varepsilon$" around the limit function in which the $f_n$'s are contained for sufficiently large $n$. In your case, this "tube" does not exist, since your sequence of functions consists only of continuous functions, and your limit function is discontinuous; so $f_n(x)$ always leaves this "tube" when $x$ approaches $1$. 
Formally, $(f_n)$ is said to converge to $f$ uniformly if
$$\forall \varepsilon >0 \, \exists n_0\in \Bbb N \text{ such that if }n\geq n_0, \text{ then } |f_n(x)-f(x)|<\varepsilon \quad \forall x.
$$
What the author is saying is that for an $\varepsilon<1$, for any $n\in \Bbb N$, we can find $x\in [0,1)$ such that $|f_n(x)-f(x)|=|f_n(x)|=x^n>\varepsilon$, which is rather trivial since $\lim_{x\to 1} f_n(x) = 1$ and $f_n$ is continuous for every $n$.
Another point of view is the following: using the fact that $(f_n)$ converges uniformly to $f$ if and only if $\sup_{x\in [0,1]}|f_n(x)-f(x)|\to 0$ as $n\to \infty$ (this is a well known fact that you can find in many books), we can compute it:
$$
\sup_{x\in[0,1]}|f_n(x)-f(x)| \geq \sup_{x\in[0,1)}|f_n(x)-f(x)|  = \sup_{x\in[0,1)}|f_n(x)| =\sup_{x\in[0,1)}x^n=1,
$$
so we obtain that the convergence is non-uniform.
A: If there were uniform convergence, then for sufficiently large $n$, you would have $|f_n(x)-f(x)|<\varepsilon$ for all $x \in [0,1]$. The problem is that near $1$ the convergence rate is very slow: to get $|f_n(x)-f(x)|<\varepsilon$ for $x \in (0,1)$, you need $x^n<\varepsilon$, hence $n>\log(\varepsilon)/\log(x)$. But that quantity blows up as $x \to 1^-$.
You can see this visually: for large $n$, $x^n$ is essentially zero except very close to $1$, where it very sharply rises up to $1$. This shows another interesting fact about this sequence: it converges uniformly on compact proper subsets of the domain. That is, if you cut out an arbitrarily small interval around $1$ from the domain, the sequence converges uniformly on the smaller domain.
This problem is also nice for illustrating one of the important applications of uniform convergence, which is to the common problem of interchanging limits. For instance, you might want to have:
$$\lim_{n \to \infty} \lim_{x \to 1^-} f_n(x) = \lim_{x \to 1^-} \lim_{n \to \infty} f_n(x).$$
If $f_n$ converges uniformly and $f_n$ are continuous, then this really does work. But otherwise it may fail: in this example the limit on the left is $1$ while the limit on the right is $0$.
