From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.help Subject: Re: How many parameters does an elisp function take? Date: Fri, 18 Feb 2005 08:59:24 -0500 Organization: Bell Sympatico Message-ID: <871xbe9dn9.fsf-monnier+gnu.emacs.help@gnu.org> References: <9e90vc.o7.ln@acm.acm> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1108736046 22943 80.91.229.2 (18 Feb 2005 14:14:06 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 18 Feb 2005 14:14:06 +0000 (UTC) Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Feb 18 15:14:05 2005 Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1D28tM-0002ae-TG for geh-help-gnu-emacs@m.gmane.org; Fri, 18 Feb 2005 15:14:01 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1D299i-0005zM-Q6 for geh-help-gnu-emacs@m.gmane.org; Fri, 18 Feb 2005 09:30:54 -0500 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!headwall.stanford.edu!newshub.sdsu.edu!cyclone.bc.net!news.alt.net!sjc-c01.usenetserver.com!nf3.bellglobal.com!nf1.bellglobal.com!nf2.bellglobal.com!news20.bellglobal.com.POSTED!not-for-mail Original-Newsgroups: gnu.emacs.help User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) Cancel-Lock: sha1:S1w1N/61PjcJj85ob07v9mvre2I= Original-Lines: 27 Original-NNTP-Posting-Host: 67.68.217.32 Original-X-Complaints-To: abuse@sympatico.ca Original-X-Trace: news20.bellglobal.com 1108735164 67.68.217.32 (Fri, 18 Feb 2005 08:59:24 EST) Original-NNTP-Posting-Date: Fri, 18 Feb 2005 08:59:24 EST Original-Xref: shelby.stanford.edu gnu.emacs.help:128632 Original-To: help-gnu-emacs@gnu.org X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org X-MailScanner-To: geh-help-gnu-emacs@m.gmane.org Xref: main.gmane.org gmane.emacs.help:24163 X-Report-Spam: http://spam.gmane.org/gmane.emacs.help:24163 > Is it possible to determine at run time how many parameters an elisp > function takes? For example, I'd like to write something like: > (how-many-params 'null) > and have it evaluate to 1. Or something like that. Together with some > reasonable convention for indicating &optional and &rest arguments. Why do you want to know? Every time this has shown up for me, what I truly wanted to know was more like "can I call this with 4 args?", and the reason why I wanted to know was to know whether to call it with 4 args or otherwise do something else (e.g. call it with fewer args). In practice, it's simpler to just do (condition-case nil (fooo) (wrong-number-of-arguments (bar))) It's not perfect, but I've found it to suffer from fewer problems than other solutions. It's also faster. Stefan