트랙
/
Common Lisp
Common Lisp
/
학습 과정
/
선택적 매개변수
선택

선택적 매개변수 에서 Common Lisp

2개의 연습 문제

선택적 매개변수 소개

선택적 매개변수는 람다 리스트에서 &optional 람다 리스트 키워드로 지정해요. 선택적 매개변수는 필수가 아니고, 기본값을 가질 수 있으며, 해당 매개변수에 인자가 전달되었는지에 따라 "true" 또는 "false"가 되는 "supplied-p 매개변수"를 지정할 수도 있어요.

(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의 "Mixing Different Parameter Types" 섹션을 참고해요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요

선택적 매개변수 배우기

연습이 잠겨 있어요

선택적 매개변수 개념을 연습하려면 연습 문제 1개를 더 잠금 해제해요