(setf lst '(A B C D E)) (nth 0 lst) ;; A ;; = car (nthcdr 1 lst) ;; (B C D E) ;; = cdr (mapcar #'list '(a b c) '(1 2 3 4)) ;; ((A 1) (B 2) (C 3)) ;; いずれかのリストが空になった時点で終了 (mapcar #'cons '(a b c) '(1 2 3 4)) ;; ((A . 1) (B . 2) (C . 3)) ;; 柔軟な pairlis ;; maplist は cdr を取りながら進む ;; mapcdr と言い換えてもいいかも (maplist #'cons '(a b c) '(1 2 3 4)) ;; (((A B C) 1 2 3 4) ((B C) 2 3 4) ((C) 3 4))
;; tree ;; こんな tree があって (setf tr '(a (a x) (b x) c)) ;; (A (A X) (B X) C) ;; X を Y に置き換えたい場合 ;; substitute を使ってもうまくいかない (substitute 'y 'x tr) ;; (A (A X) (B X) C) ;; なぜなら、リストのどの要素も X ではないから ;; tree に対してアトムの置換えをしたいときは ;; subst を使う (subst 'y 'x tr) ;; (A (A Y) (B Y) C)