・ (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>