;;;; bottles3.lsp

;;; Solution employing iteration construct
;;;
(defun bottles (X)
 "Song '99 bottles on the wall'"
  (do
      ((stock X (1- stock))
       (take "Take one down, and pass it around."))
      ((zerop stock)
       (format t "Now, they are all gone."))
    (if (= stock 1)
	(format t "1 bottle of beer on the wall. ~a~%" take)
        (format t "~a bottles of beer on the wall. ~a~%" stock take))))
       
