I'd like to see somebody one-up this and say ``and lambda!''. What I mean is restricting explicit recursion/loops to combinators which respect algebraic laws (i.e. Backus's FP/FL) in order to get a better grip on program transformation to reach efficient implementation. Guy already hints at this by stressing the importance of MapReduce.