I can enumerate many features of functional programming, but when my friend asked me Could you define functional programming for me? I couldn\'t.
It's like drawing a picture by using vectors instead of bitmaps - tell the painter how to change the picture instead of what the picture looks like at each step.
It's application of functions as opposed to changing the state.