Lispのsubseq関数
SEQUENCEの一部(あるいはすべて)をコピーするのがsubseq関数。
(SUBSEQ SEQUENCE START &OPTIONAL END)
&OPTIONAL とは、省略可能な引数ということか。
この関数の実行例は以下のような感じ。
?(setf lst '(a b c d e f g)) (A B C D E F G) ?(subseq lst 3 4) (D) ?lst (A B C D E F G) ?(subseq lst 0) (A B C D E F G)
最初の引数は、コピー(あるいは抽出)対象となるSEQUENCE。その次がコピー開始位置。最後はオプションで、指定するとSTARTからその要素までをコピーし、省略するとSEQUENCEの最後までコピーされる。