トラック
/
Common Lisp
Common Lisp
/
シラバス
/
省略可能な仮引数
省略

省略可能な仮引数 の Common Lisp

2個の演習

省略可能な仮引数について

省略可能な仮引数は、ラムダリストの中で&optionalというラムダリストキーワードを書くことで指定します。省略可能な仮引数は必須ではなく、デフォルト値を持たせることができ、さらに「supplied-pパラメータ」を指定することもできます。このパラメータは、その仮引数に引数が渡されたかどうかに応じてtrueまたはfalseになります。

(defun optional-parameter (&optional (arg -1)) arg)
(optional-parameter)    ; => -1
(optional-parameter 13) ; => 13

省略可能な仮引数は、必須の仮引数のあとに、名前付き仮引数やレスト仮引数より前に置く必要があります。引数は、まず必須の仮引数に、次に省略可能な仮引数に、最後にレスト仮引数と名前付き仮引数に束縛されます。

(defun req-and-opt (req &optional (opt -1)) (list req opt)
(req-and-opt 1)    ; => (1 -1)
(req-and-opt 1 13) ; => (1 13)

複数の種類の仮引数を別の種類の仮引数(省略可能な仮引数とキーワード仮引数)と組み合わせることはできますが、問題が起きることがあり、慎重に行う必要があります。Practical Common Lispの「異なる種類の仮引数を組み合わせる」の節を参照してください。

GitHubで編集 リンクは新しいウィンドウまたはタブで開きます

省略可能な仮引数を学習する

練習はロックされています

省略可能な仮引数を練習するには、あと1個の演習のロックを解除してください