Using Multiple Lisps with Inferior Lisp

I was reading On Lisp which uses Common Lisp through out the book, so I needed a quick way to switch between lisps, following is a quick hack to switch between different lisp programs. When you call na-run-lisp without any prefix it will run the first item in lisp-programs, when called with a prefix you can select which lisp to run.

(setq lisp-programs 
      (list (list "clojure" clojure-command)
            (list "sbcl" "/opt/local/bin/sbcl")))

(defun na-run-lisp (arg)
  (interactive "P")
  (if (null arg)
      (run-lisp (second (first lisp-programs)))
    (let (choice) 
      (setq choice (completing-read "Lisp: " (mapcar 'first lisp-programs)))
      (dolist (l lisp-programs)
        (if (string= (first l) choice)
            (run-lisp (second l)))))))