(apply 〈関数〉〈引数〉
〈引数
〉〈引数リスト〉) 【関数】
〈引数〉
〈引数
〉 および, 〈引数リスト〉 の要素を実引数として 〈関数〉 を呼び出し, その値を返す.
例:
(apply car '((a . b)))a
(apply list '())()
(apply list '(a))(a)
(apply list 'a '(b))(a b)
(map 〈関数〉〈リスト〉〈リスト
〉
〈リスト
〉) 【関数】
〈リスト〉
〈リスト
〉 の 各要素を引数として〈関数〉 を呼び出し, 結果をリストにして返す. 〈関数〉 は
引数の関数で, 〈リスト
〉
〈リスト
〉 は 同じ長さのリストでなければならない. また 〈関数〉 を呼び出す順序は規定されていない.
例:
(map cadr '((a b) (c d) (e f)))
(b d f)
(map + '(1 2 3) '(4 5 6) '(7 8 9))
(12 15 18)
(mapcan 〈関数〉〈リスト〉〈リスト
〉
〈リスト
〉) 【関数】
〈リスト〉
〈リスト
〉 の 各要素を引数として〈関数〉 を呼び出す. 結果は 〈関数〉 の値がすべてリストだと仮定して それらの要素すべてからなるリストを値として返す. 返されるリストは 〈関数〉 の値を破壊的に連結するため, 副作用を生じることがある. 〈関数〉 は
引数の関数で, 〈リスト
〉
〈リスト
〉 は 同じ長さのリストでなければならない. また 〈関数〉 を呼び出す順序は規定されていない.
例:
> (define x '((a b) (c) (1 2 3)))
x
> (mapcan cdr x)
(b 2 3)
> x
((a b 2 3) (c) (1 2 3))
(for-each 〈関数〉〈リスト〉〈リスト
〉
〈リスト
〉) 【関数】
〈リスト〉
〈リスト
〉 の各要素を引数として 〈関数〉 を呼び出す. for-each式の返す値は規定されていない. したがって,副作用をおこすために使用するのがふつうである. 〈関数〉 は
引数の関数で, 〈リスト
〉
〈リスト
〉 は 同じ長さのリストでなければならない. 〈関数〉 を呼び出す順序は次の通りである. まず,各〈リスト〉 の第
要素を引数とする呼び出しを行い, 次に各〈リスト〉 の第
要素を引数とする呼び出しを行い,等々であり, 最後に各〈リスト〉 の最後の要素を引数とする呼び出しを行う.
例:
(let ((v (make-vector 5)))
(for-each (lambda (i)
(vector-set! v i (* i i)))
'(0 1 2 3 4))
v)#(0 1 4 9 16)