loopマクロについて
loopマクロを今まで真面目に覚えてなかったので
しっかり今回覚えることにする。
;;for文が基本 ;; for 変数名 in/on/access リストorベクタ (by アクセス関数) ;; でその集合に順番にアクセスしてくれる。 ;; onだと若干特殊なので注意 ;; inの例 (loop for x in '(a b c d e) collect x) ==> (A B C D E) ;; byを使ってみる CL-USER> (loop for x in '(a b c d e) by #'cddr collect x) ==> (A C E) ;; onの例 (loop for x on '(a b c d e) collect x) ==> ((A B C D E) (B C D E) (C D E) (D E) (E)) ||> 次に数字を使ったfor文の例 >|lisp| ;; from 数字 to 数字 by 数字 (loop for i from 10 to 50 by 5 collect i) ==> (10 15 20 25 30 35 40 45 50) ;;repeat N 数字の回数だけ繰り返す。 (loop repeat 10 collect (random 10)) ==> (0 8 0 9 5 3 2 9 9 3)
こっちは分かりやすい。
from の部分にはdownfrom/upfrom
toの部分にはto/upto/downto/below/above
という表現もある。
とりあえず今日はここまで。