たとえば、あるlistの中から奇数だけを抽出したい、というとき。
wrk (1 2 3 4 5 6 7 8 9 10) (loop for x in wrk collect (when (oddp x) x)) (1 nil 3 nil 5 nil 7 nil 9 nil)
こうやると、nilがまじってしまう。このケースだと、remove-ifを使えば、いいのだけの話なのだけど——loopマクロでこんな風にしていた。
(loop for x in wrk append (when (oddp x) (list x))) (1 3 5 7 9)
なんかいまいちだなぁ。
なんとこうできるのだった。
(loop for x in wrk
when (oddp x)
collect x)
(1 3 5 7 9)
すげえな、loopマクロ。