「Mapcar」の版間の差分
細編集の要約なし |
編集の要約なし |
||
18行目: | 18行目: | ||
; サンプル | ; サンプル | ||
< | <syntaxhighlight lang="lisp" line> | ||
(mapcar '+ '(5 3 2) '(10.0 10.0 0)) | (mapcar '+ '(5 3 2) '(10.0 10.0 0)) | ||
(15.0 13.0 2) | |||
(mapcar '* '(5 3 2) '(2 2 2)) | (mapcar '* '(5 3 2) '(2 2 2)) | ||
(10 6 4) | |||
(setq a 10 b 20 c 30) | (setq a 10 b 20 c 30) | ||
30 | |||
(mapcar '1+ (list a b c)) | |||
(11 21 31) | (11 21 31) | ||
; これは、次のコマンド シーケンスと同じ。但し、mapcar 関数は結果としてリストを返す。 | ; これは、次のコマンド シーケンスと同じ。但し、mapcar 関数は結果としてリストを返す。 | ||
; (1+ a) | ; (1+ a) | ||
; (1+ b) | ; (1+ b) | ||
; (1+ c) | ; (1+ c) | ||
; mapcar 関数で実行する匿名の関数を、lambda 関数で指定できる。関数の引数が定数の場合や別の手段で与えられる場合に便利である。 | |||
; 次の例では、lambda 関数と mapcar 関数を一緒に使用している。 | |||
(mapcar '(lambda (x) | |||
(+ x 3) | |||
) | ) | ||
'(10 20 30) | '(10 20 30) | ||
) | |||
>> (13 23 33) | >> (13 23 33) | ||
</ | </syntaxhighlight> | ||
2019年7月7日 (日) 17:54時点における版
- 構文
- (mapcar function list1... listn)
- 機能
- 指定されたリストの各要素を引数として関数を実行した結果のリストを返す。
- 引数
-
- function : 関数。
- list1... listn : 1 つ以上のリスト。 リストの数は、function 引数が必要とする引数の数に一致していなければならない。
- 戻り値
- リスト。
- サンプル
<syntaxhighlight lang="lisp" line> (mapcar '+ '(5 3 2) '(10.0 10.0 0)) (15.0 13.0 2)
(mapcar '* '(5 3 2) '(2 2 2)) (10 6 4)
(setq a 10 b 20 c 30) 30
(mapcar '1+ (list a b c)) (11 21 31)
- これは、次のコマンド シーケンスと同じ。但し、mapcar 関数は結果としてリストを返す。
- (1+ a)
- (1+ b)
- (1+ c)
- mapcar 関数で実行する匿名の関数を、lambda 関数で指定できる。関数の引数が定数の場合や別の手段で与えられる場合に便利である。
- 次の例では、lambda 関数と mapcar 関数を一緒に使用している。
(mapcar '(lambda (x)
(+ x 3) ) '(10 20 30)
) >> (13 23 33) </syntaxhighlight>
関連事項