From: zak.wilson@... Date: 2005-07-26T06:41:01+09:00 Subject: Re: Lisp on Lines This looks like first class functions to me: def accgen (n) lambda {|i| n += i } end foo = accgen(5) foo.call(5) # returns 10 foo.call(5) # returns 15 accgen function borrowed from http://www.paulgraham.com/accgen.html Lisp macros are the main area in which Lisp has more power than Ruby, and are closely related to Lisp's syntax (or non-syntax). Macros allow for new language constructs much like OOP allows for new types, for example, if Common Lisp didn't have unless, you could add it like this: (defmacro unless (test &rest forms) `(if ,test 'nil ,@forms))