P and NP classes explanation through lambda-calculus
Turing-machines and $\lambda$-calculus are equivalent only w.r.t. the functions $\mathbb{N} \rightarrow \mathbb{N}$ they can define.

From the point of view of computational complexity they seem to behave differently.
The main reason people use Turing machines and not $\lambda$-calculus to reason about
complexity is that using $\lambda$-calculus naively leads to unrealistic complexity measures, because you can copy terms (of arbitrary size) freely in single $\beta$-reduction steps, e.g. $(\lambda x.xxx)M \rightarrow MMM.$ In other words, single reduction steps in $\lambda$-calculus are a lousy cost model. In contrast, single Turing-machine reduction steps  work great (in the sense of being good predictors of real-world program run-time).

It is not known how fully to recover
conventional Turing-machine based complexity theory in
$\lambda$-calculus. In a recent (2014) breakthrough Accattoli and Dal Lago
managed to show  that
large classes of time-complexity such as $P$, $NP$ and $EXP$ can
be given a natural $\lambda$-calculus formulation. But smaller
classes like $O(n^2)$ or $O(n \, log\, n)$ cannot be presented
using the Accattoli / Dal Lago techniques.

How to recover conventional space   complexity using
$\lambda$-calculus is unknown.