Lisp-rest-parameters

提供:Dev Guides
移動先:案内検索

LISP-レストパラメーター

一部の関数は、可変数の引数を取る必要があります。

たとえば、使用している format 関数には、ストリームと制御文字列の2つの必須引数が必要です。 ただし、文字列の後に、文字列に表示される値の数に応じて可変数の引数が必要です。

同様に、+関数、または*関数も可変数の引数を取ることができます。

シンボル*&rest。*を使用して、このような可変数のパラメーターを提供できます。

次の例は、概念を示しています-

main.lispという名前の新しいソースコードファイルを作成し、次のコードを入力します。

(defun show-members (a b &rest values) (write (list a b values)))
(show-members 1 2 3)
(terpri)
(show-members 'a 'b 'c 'd)
(terpri)
(show-members 'a 'b)
(terpri)
(show-members 1 2 3 4)
(terpri)
(show-members 1 2 3 4 5 6 7 8 9)

あなたがコードを実行すると、それは次の結果を返します-

(1 2 (3))
(A B (C D))
(A B NIL)
(1 2 (3 4))
(1 2 (3 4 5 6 7 8 9))