ディレクトリのリスト表現からパスを生成する - lisp-cookbook-ja/common-lisp GitHub Wiki

入出力

make-pathname は:directory引数等で、リスト表現も受け付けますので工夫すれば簡単に書くことが可能です

(defun gen-dirs (dirs subdirs)
  (mapcan (lambda (d)
            (mapcar (lambda (b)
                      (make-pathname :directory `(:absolute ,@(mapcar #'string d) ,(string b))
                                     :case :common))
                    subdirs))
          dirs))
(gen-dirs '((usr local) (usr2 local) (usr) () )
          '(bin sbin))
;=>  (#P"/usr/local/bin/" #P"/usr/local/sbin/" #P"/usr2/local/bin/"
;     #P"/usr2/local/sbin/" #P"/usr/bin/" #P"/usr/sbin/" #P"/bin/" #P"/sbin/")