・ (apply) (foreach) (mapcar) 関数の違いは?
・リストの各要素にたいして、同じ関数を実行したい

(repeat)を使わずに、リストの各要素にたいして、同じ関数を実行したい場合

apply        引数のリストを指定した関数に渡す
               リストの各項目で加工

foreach     リストのすべてのメンバーについて、各式を評価する
               リストの各項目を引数として渡す

mapcar     関数の引数として指定したリストの各要素について、関数を実行した結果のリストを返す
               リストの各要素毎に加工してリストで返す

(setq pt_list '( (0 0) (10 0) (10 10) ) )
として、以下の4つの Lisp は同じ結果が得られます

1.(foreach n (cons "LINE" (append pt_list '("c") ) ) (command n) )
2.(command "LINE") (foreach n  pt_list (command n) ) (command "c")
3.(command "LINE") (apply 'command pt_list) (command "c")
4.(command "LINE") (mapcar 'command pt_list) (command "c")

 

参考文献:「おぉとりすぷの広場」 記事番号<16326> <16336> <16806> <16807>