Lambda-Calculus and Type Theory