Lisp, thanks to Scheme, is often associated with functional programming. However, as David Turner points out,
McCarthy (1978) records that LISP had assignment and
goto
before it had conditional expressions and recursion—it started as a version of FORTRAN I to which these latter were added.LISP was not based on the lambda calculus, despite using the word “LAMBDA” to denote functions. At the time he invented LISP, McCarthy was aware of (Church 1941) but had not studied it. The theoretical model behind LISP was Kleene's theory of first order recursive functions [according a talk McCarthy gave, heard by Turner].