Mapcar関数は非常に便利な関数だ。関数を連続でリストの要素に適用できる。引数[0]に関数を、引数[1]以降にインプットのリストを指定する。
反復にMapcar関数を使う
Mapcar関数は簡単な反復機能をスマートに実装できる。
→ 反復はOMLoopを使ってもできる。複雑な反復はこっちで。
→ 反復はOMLoopを使ってもできる。複雑な反復はこっちで。
Mapcar関数を使って関数をリストの要素に適用
Mapcar関数の引数[0]はラムダ関数を、引数[1]以降に処理するリストを入れる。

さて*関数は

さて*関数は
- 実引数で数値5が入っている
- 片方は無入力。これがラムダ関数の変数になる。(仮引数)
つまりこのラムダ関数は "f(x) = x * 5" のような、変数1つ持ちの関数である。
Mapcarはこの関数のxにリスト(3 4)の要素を順番に入れていき、結果をリストの形で集める。
すると((3*5) (4*5))となり(15 20)となる。
Mapcarはこの関数のxにリスト(3 4)の要素を順番に入れていき、結果をリストの形で集める。
すると((3*5) (4*5))となり(15 20)となる。
複数リスト
Mapcar関数は複数入力も問題なく処理できる。

上図の*関数はどちらも無入力、つまり変数2つ持ちである。" f(x,y) = x * y "のような。

上図の*関数はどちらも無入力、つまり変数2つ持ちである。" f(x,y) = x * y "のような。
- (1回目) xに5を入力、yに3を入力、15を集める
- (2回目) xに2を入力、yに4を入力、8を集める
- 15と8をリストにして出力
このような処理が行われる。funcall関数が何回もできるみたいな感じ。
添付ファイル