(dolist (ループ変数 リスト式) フォーム1 フォーム2 ...) ;; 返り値: nil
whileよりループのほうが、リストの各要素に対してアクセスするので、
抽象度がワンランク上がっていることに留意する。
;;; whileをdolistに置き換える (let ((lst '(1 2 3)) result) (while (car lst) (setq result (cons (car lst) result)) (setq lst (cdr lst))) (cons 'finished result)) ; => (finished 3 2 1) (let (result) (dolist (x '(1 2 3)) (setq result (cons x result))) ; => nil (cons 'finished result)) ; => (finished 3 2 1) ;;; dolistの返り値を指定することもできる (let (result) (dolist (x '(1 2 3) (cons 'finished result)) (setq result (cons x result)))) ; => (finished 3 2 1)
P67
- 作者: るびきち
- 出版社/メーカー: 技術評論社
- 発売日: 2011/11/26
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 220回
- この商品を含むブログを見る