Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

(L)ets (I)nsert (S)ome (P)arantheses :-)

I like LISP since it was an eye-opener for me long ago, showing the essence of computer sciences (i.e. tail recursion, functional programming, immutable data structures, terseness vs. understandability).



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").




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: