Clojure(Lisp?)のmapについて
map関数はリストの各要素に対して関数fを適用します.
(map f lis)
また,引数としてリストを複数とることができます.
(map f lis1 lis2)
このとき,関数fは次のような順番で適用されます.
- lis1の0番目の要素,lis2の0番目の要素
- lis1の1番目の要素,lis2の1番目の要素
- lis1の2番目の要素,lis2の2番目の要素
- (以下略)
例えば,次のようなプログラムだと,
(println (map str [1, 2, 3] [10, 20, 30] ))
実行結果は↓になります.
(110 220 330)
Haskellとか他の言語だと,map関数で指定できるリストの数は1つだけなので,Clojureのmapは便利だと思いました.