Lispのlast関数
Lispであるものを作りたい、と思っている。そのあるものを作る際に、「リストの最後からXXX個の要素を取り出す」ことをしたいと思って、そういう関数がないか調べてみた。そしたら、そのものズバリな関数が・・・その名はlast。まったく・・・そのままだ。参考サイトはここ。
last関数は、リストと取り出す要素数の2つの引数を取る。要素数がない場合は、0として扱われるようだが・・・リスト内に.(dot)を含む場合は事情が異なるようだ。使う際は試してから使うのがいいと思うけれども。使用例は以下の通り。
? (setq aaa (append aaa (cons 97 nil))) (97) ? (setq aaa (append aaa (cons 10 nil))) (97 10) ? (setq aaa (append aaa (cons 13 nil))) (97 10 13) ? (setq aaa (append aaa (cons 10 nil))) (97 10 13 10) ? (setq aaa (append aaa (cons 13 nil))) (97 10 13 10 13) ? (last aaa 4) (10 13 10 13) ? (equal (last aaa 4) '(10 13 10 13)) T