Comment by kazinator
7 years ago
Most of the data structures in ANSI Lisp are mutable, as are variable bindings and global function bindings. Support for tail recursion is a quality-of-implementation issue. There is excellent support for procedural programming: the language constructs are strictly evaluated and many key language constructs evaluate a body of zero or more forms (called an "implicit progn"), all but the last of which have to have side-effects for that to make sense. There are constructs for iteration over a single instance of the loop variables, and control transfer features: a form of goto within a labeled block called a tagbody, as well as dynamic non-local control transfers that support the condition handling system. Functional programming is possible by confining to a very small language subset (sometimes called "Pure Lisp").
No comments yet
Contribute on Hacker News ↗