>>415
そういうのは再帰が基本だから何故関数封じるのか。
(defun a (s) (append (if (string-match "/" s) (a (replace-regexp-in-string "/[^/]*$" "" s))) (list s)))
(a "aaa/bbb/ccc/ddd")
("aaa" "aaa/bbb" "aaa/bbb/ccc" "aaa/bbb/ccc/ddd")