counterの定義はdefun使えばいいのに
(defun counter () (let ((count 0)) (lambda () (incf count))))
counterが返すクロージャをfset使うのは便利だけど
(fset 'f (counter))
(f) => 1
(f) => 2