# File lib/facet/lisp.rb, line 300
  def reduce(fun, x, list)
    if null?(list)
      x
    else
      fun.call(car(list), reduce(fun, x, cdr(list)))
    end
  end