yoshikit1996’s diary

日々勉強したことの備忘録です。

Clojure(Lisp?)のmapについて

map関数はリストの各要素に対して関数fを適用します.

(map f lis)

また,引数としてリストを複数とることができます.

(map f lis1 lis2)

このとき,関数fは次のような順番で適用されます.

  1. lis1の0番目の要素,lis2の0番目の要素
  2. lis1の1番目の要素,lis2の1番目の要素
  3. lis1の2番目の要素,lis2の2番目の要素
  4. (以下略)

例えば,次のようなプログラムだと,

(println
 (map str
      [1, 2, 3]
      [10, 20, 30]
      ))

実行結果は↓になります.

(110 220 330)

Haskellとか他の言語だと,map関数で指定できるリストの数は1つだけなので,Clojureのmapは便利だと思いました.