  We study the recovery of functions in various norms, including $L_p$ with
$1\le p\le\infty$, based on function evaluations. We obtain worst case error
bounds for general classes of functions in terms of the best
$L_2$-approximation from a given nested sequence of subspaces and the
Christoffel function of these subspaces. In the case $p=\infty$, our results
imply that linear sampling algorithms are optimal up to a constant factor for
many reproducing kernel Hilbert spaces.
