If you like reducing programs to basic expressions you should read into SKI combinator calculus and the X combinator.
Here is a paper that describes the construction of an efficient X combinator[1].
Reading the paper gave me insight in how simple yet powerful combinatory logic is.
[1]www.staff.science.uu.nl/~fokke101/article/combinat/combinat.ps