Programming in Haskell by Graham Hutton
Functional programming can be viewed as a style of programming in which the basic method of computation is the application of functions to arguments. A functional programming language is one that supports and encourages the functional style.
Programming languages in which the basic method of computation is changing of stored values are called imperative languages, because programs in such languages are constructed from imperative instructions.
Personal code while reading Programming in Haskell.