一部の関数パラメーター、または少なくともそれが取るいくつかの引数のラムダリスト仕様を取得するにはどうすればよいですか?
例えば:
(defun a (a b) )
(get-arg-list #'a) ;-> '(a b)
一部の関数パラメーター、または少なくともそれが取るいくつかの引数のラムダリスト仕様を取得するにはどうすればよいですか?
例えば:
(defun a (a b) )
(get-arg-list #'a) ;-> '(a b)
Common Lisp はFUNCTION-LAMBDA-EXPRESSION
、ラムダ リストを含むソース式を復元できる関数を提供します。
FUNCTION-LAMBDA-LIST
LispWorks は、arglist を返す関数を定義しています。
ARGLIST
他の多くの実装では、何らかの内部パッケージに何らかの形式の機能があります。
多くの Common Lisp ユーザーは、GNU Emacs エディターの非常に賢いエディター拡張機能である SLIME を使用しています。SWANK と呼ばれる Common Lisp のバックエンドがあります。SWANK ソースは、関数の arglist の取得を含む、さまざまな Common Lisp 実装へのあらゆる種類のインターフェイスを提供します。
これは実装固有ですが、この CLHS 関数から始めることができます - http://clhs.lisp.se/Body/f_descri.htm
これを行う最も簡単な方法は、SLIME で使用されている SWANK ライブラリを使用することです。
これを使用する方法は、SLIME をロードすることです。これは、Quicklisp を介して最も簡単に実行できます。
(ql:quickload "swank")
次に、次の関数を使用して引数リストを取得できます。
CL-USER> (swank-backend:arglist #'a)
(A B)