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