Lisp's general model is functional. It makes it easier for you to write in functional style, and is lots of fun. To be more practical, it allows assignments and other side effects, but their usage is discouraged, except for in some specially defined cases (global counters, for instance, which would be quite tedious w/o side effects).
Abelson and Sussman's book is terrific. As a part of a course, I did quite a lot of exercises in it, in Scheme and it was great. | [reply] |
| [reply] |
Abelson and Sussman is available online for those who are interested and like online books/don't want to spend money on the book.
Hope this helps, -gjb-
| [reply] |
That's a rather restrictive definition for a functional language (e.g. it would exclude ML) - I'd prefer to call something completely side-effect free a "purely functional language", and reserve the term "functional language" for one that strongly encourages one to program functionally (to be inclusive of the like of ML), and to then say that something like Common Lisp that makes functional programming easy to do but doesn't really favor it over other styles of programming is a language that "supports" functional programming. | [reply] |