マクロ ad-get-arg, ad-get-args

(defun foo (x y &optional z &rest r)
  )
  => foo
(defadvice foo (before foo-before activate)
  (insert (format "%S\n" (ad-get-arg 0)))
  (insert (format "%S\n" (ad-get-arg 1)))
  (insert (format "%S\n" (ad-get-arg 2)))
  (insert (format "%S\n" (ad-get-arg 3)))
  (insert (format "%S\n" (ad-get-arg 4))))
  => foo
(foo 0 1 2 3 4 5 6)
  => 0
     1
     2
     3
     4
     nil
(defadvice foo (before foo-before activate)
  (insert (format "%S\n" (ad-get-args 0)))
  (insert (format "%S\n" (ad-get-args 1)))
  (insert (format "%S\n" (ad-get-args 2)))
  (insert (format "%S\n" (ad-get-args 3)))
  (insert (format "%S\n" (ad-get-args 4))))
  => foo
(foo 0 1 2 3 4 5 6)
  => (0 1 2 3 4 5 6)
     (1 2 3 4 5 6)
     (2 3 4 5 6)
     (3 4 5 6)
     (4 5 6)
     nil