I saw Matt Might upvoted another answer, but I will still post this wonder found on his blog: a 7-line interpreter for the Lambda Calculus in Scheme. (define (eval e env) (cond ((symbol? e) (cadr (assq e env))) ((eq? (car e) 'λ) (cons e env)) (else (apply (eval (car e) env) (eval (cadr e) env))))) (define (apply f x) (eval (cddr (car f)) (cons (list (cadr (car f)) x) (cdr f)))) (display (eval (read) '())) (newline)