[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: function-max-args
- From: Hideyuki SHIRAI (
白井秀行
) <shirai@xxxxxxxxxxxxxxxxxxx>
- Date: Mon, 04 Mar 2002 15:20:32 +0900 (JST)
- X-ml-name: emacs-w3m
- X-mail-count: 02869
- References: <yosuu1rwooea.fsf@jpl.org>
From: Katsumi Yamaoka <yamaoka@jpl.org> さん曰く
Subject: [emacs-w3m:02868] function-max-args
Message-ID: <yosuu1rwooea.fsf@jpl.org>
Date: Mon, 04 Mar 2002 15:08:59 +0900
山岡さん> すみません、つまらないことで恐縮ですが、新しい Mew が無い環境で
山岡さん> は mew-shimbun.el をコンパイルするときに mew-summary-ls に引数を
山岡さん> 二個与えている部分で警告が出ます。この部分を
## うぅ、もうしわけないです。
山岡さん> (dont-compile (mew-summary-ls newfld newfld))
山岡さん> にしてしまっても良いでしょうか?
山岡さん> ;; (eval '(mew-summary-ls newfld newfld)) と同じ意味です。
全然問題ないです。よろしくお願いします。(_ _)
# dont-compile() ってはじめてみました。
山岡さん> おまけとして XEmacs にだけ存在する function-max-args という便利
山岡さん> な関数の FSF Emacs 版を作ってみました。
山岡さん> (w3m-function-max-args 'mew-summary-ls)
山岡さん> => 1
山岡さん> 白井さんの環境ではこれは 2 を返すのですよね。
はい、2 です。なんか最近 mew-shimbun が変、と思っていたら、引数
の意味と個数が変わっていたという。。
山岡さん> (if (featurep 'xemacs)
山岡さん> (defalias 'w3m-function-max-args 'function-max-args)
山岡さん> (eval-and-compile
山岡さん> (require 'advice))
山岡さん> (defun w3m-function-max-args (function)
山岡さん> "Return the maximum number of arguments a function may be called with.
山岡さん> The function may be any form that can be passed to `funcall',
山岡さん> any special form, or any macro.
山岡さん> If the function takes an arbitrary number of arguments or is
山岡さん> a built-in special form, nil is returned."
山岡さん> (let ((arglist (ad-arglist (if (symbolp function)
山岡さん> (symbol-function function)
山岡さん> function))))
山岡さん> (if (memq '&rest arglist)
山岡さん> nil
山岡さん> (length (delq '&optional arglist))))))
すばらしいです。目から鱗状態です。
--
白井秀行@鱗だけじゃなくて花粉もどこかに行ってくれると完璧 ;_;