Lisp is not a functional language except in the trivial sense that it supports HOFs. Common Lisp is not even functional in the sense of Scheme, where purely-functional programming is not enforced but seems to be encouraged (disclaimer: IANAS). Common Lisp is a pragmatic, multiparadigm language in which functional, imperative and other styles can and should be used as appropriate. In a very real sense Lisp is that language "in the middle."