[EMAIL PROTECTED] wrote: > Is there a way to have a variable number of arguments in > a function argument-list? > I know how to write a function in which a fixed number of arguments > is expected for ex. > > ( defun my-function ( first second ) > (interactive "sFirst : \nsSecond : ") > (insert ""first"\n" > ""second"\n") > )
See the Lambda Expressions node of the Emacs Lisp manual.
> So I'm asked for "first" and for "second"...and my-function > inserts the two of them in a buffer. > I would like to have more arguments (let's say n) and being > asked for them interactively, for instance: > How many arguments? : 5 <Ret> > First : first_argument <Ret> > Second : second_argument <Ret> > Third : third_argument <Ret> > ...and so on without knowing their number in advance.
If you don't know how many there are, you can't name them individually.
(defun your-function (&rest argument-list) (interactive (let* ((n (read (read-from-minibuffer "How many arguments? "))) (i 0) (args '())) (while (< i n) (setq args (cons (read-from-minibuffer (format "Argument %d: " (setq i (1+ i)))) args))) args)) ...)
-- Kevin Rodgers
_______________________________________________ Help-gnu-emacs mailing list Help-gnu-emacs@gnu.org http://lists.gnu.org/mailman/listinfo/help-gnu-emacs