unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* elisp: how to pass a list argument to defun
@ 2006-06-28  9:36 lalit mohan tripathi
  0 siblings, 0 replies; 4+ messages in thread
From: lalit mohan tripathi @ 2006-06-28  9:36 UTC (permalink / raw)



[-- Attachment #1.1: Type: text/plain, Size: 857 bytes --]

Hi All,

   Could anyone tell me how to pass a list argument in elisp to a defun?

   I'm want to write a defun like this

(defun process-list-fn (list02, a, b, c)
  "This function prints the list02, a, b, c."
  (print list02)
  (print a)
  (print b)
  (print c))


I want to use it like this:

(setq list01 '("abc" "def" "xyz"))
(process-list-fn list01 10 20 30)

But I get the following error:

Debugger entered--Lisp error: (void-variable list02)
  (print list02)
  process-list-fn(("abc" "def" "xyz") 10 20 30)
  eval((process-list-fn list01 10 20 30))
  eval-last-sexp-1(nil)
  eval-last-sexp(nil)
  call-interactively(eval-last-sexp)
  recursive-edit()
  byte-code("Æ\b!^[,HG^[(B ^[,HH    ^[(B!^[,H\^[(Bn^[,C?

P.S. I'm able to pass the list to a function but that works when the defun
is defined with only one listarguement.

[-- Attachment #1.2: Type: text/html, Size: 1161 bytes --]

[-- Attachment #2: Type: text/plain, Size: 152 bytes --]

_______________________________________________
help-gnu-emacs mailing list
help-gnu-emacs@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gnu-emacs

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: elisp: how to pass a list argument to defun
       [not found] <mailman.3433.1151487404.9609.help-gnu-emacs@gnu.org>
@ 2006-06-28 10:03 ` Tassilo Horn
  2006-06-28 13:55 ` Pascal Bourguignon
  2006-06-28 20:59 ` Le Wang
  2 siblings, 0 replies; 4+ messages in thread
From: Tassilo Horn @ 2006-06-28 10:03 UTC (permalink / raw)


"lalit mohan tripathi" <lalit.tripathi@gmail.com> writes:

Hi!

> (defun process-list-fn (list02, a, b, c)
>   "This function prints the list02, a, b, c."
>   (print list02)
>   (print a)
>   (print b)
>   (print c))
>
> (setq list01 '("abc" "def" "xyz"))
> (process-list-fn list01 10 20 30)
>
> But I get the following error:
>
> Debugger entered--Lisp error: (void-variable list02)

Lisp doesn't know the variable `list02', but it knows `list02,'. ;-)

In Lisp you don't separate the parameters with comma. Remove them and
you'll be fine.

Bye,
Tassilo
-- 
VI VI VI - The Roman Number Of The Beast

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: elisp: how to pass a list argument to defun
       [not found] <mailman.3433.1151487404.9609.help-gnu-emacs@gnu.org>
  2006-06-28 10:03 ` Tassilo Horn
@ 2006-06-28 13:55 ` Pascal Bourguignon
  2006-06-28 20:59 ` Le Wang
  2 siblings, 0 replies; 4+ messages in thread
From: Pascal Bourguignon @ 2006-06-28 13:55 UTC (permalink / raw)


"lalit mohan tripathi" <lalit.tripathi@gmail.com> writes:

> Hi All,
>    Could anyone tell me how to pass a list argument in elisp to a defun?
>    I'm want to write a defun like this
> (defun process-list-fn (list02, a, b, c)
>   "This function prints the list02, a, b, c."
>   (print list02)
>   (print a)
>   (print b)
>   (print c))
> I want to use it like this:
> (setq list01 '("abc" "def" "xyz"))
> (process-list-fn list01 10 20 30)


(defun process-list-fn (list02, a, b, c)
  "This function prints the list02, a, b, c."
  (print list02,)
  (print a,)
  (print b,)
  (print c))


(process-list-fn 'list01 10 20 30)

prints:
list01

10

20

30

returns:
30

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

CAUTION: The mass of this product contains the energy equivalent of
85 million tons of TNT per net ounce of weight.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: elisp: how to pass a list argument to defun
       [not found] <mailman.3433.1151487404.9609.help-gnu-emacs@gnu.org>
  2006-06-28 10:03 ` Tassilo Horn
  2006-06-28 13:55 ` Pascal Bourguignon
@ 2006-06-28 20:59 ` Le Wang
  2 siblings, 0 replies; 4+ messages in thread
From: Le Wang @ 2006-06-28 20:59 UTC (permalink / raw)


lalit mohan tripathi wrote:
> Hi All,
>
>    Could anyone tell me how to pass a list argument in elisp to a defun?
>
>    I'm want to write a defun like this
>
> (defun process-list-fn (list02, a, b, c)
>   "This function prints the list02, a, b, c."
>   (print list02)
>   (print a)
>   (print b)
>   (print c))
>
>
> I want to use it like this:
>
> (setq list01 '("abc" "def" "xyz"))
> (process-list-fn list01 10 20 30)
>
> But I get the following error:
>
> Debugger entered--Lisp error: (void-variable list02)
>   (print list02)
>   process-list-fn(("abc" "def" "xyz") 10 20 30)
>   eval((process-list-fn list01 10 20 30))
>   eval-last-sexp-1(nil)
>   eval-last-sexp(nil)
>   call-interactively(eval-last-sexp)
>   recursive-edit()
>   byte-code("?\b!?HG ?HH    !?H\n?C?
>
> P.S. I'm able to pass the list to a function but that works when the defun
> is defined with only one listarguement.

remove the commas from your defun formal parameters list.

--
Le

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2006-06-28 20:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-06-28  9:36 elisp: how to pass a list argument to defun lalit mohan tripathi
     [not found] <mailman.3433.1151487404.9609.help-gnu-emacs@gnu.org>
2006-06-28 10:03 ` Tassilo Horn
2006-06-28 13:55 ` Pascal Bourguignon
2006-06-28 20:59 ` Le Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).