The best intro for functional programming, IMO, is Joel Spolsky's "Can your language do this" (http://www.joelonsoftware.com/items/2006/08/01.html).
To meaningfully distinguish functional from imperative programming you have to add purity/immutable data to the definition at least.