「Mapcar」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
編集の要約なし
編集の要約なし
15行目: 15行目:
; サンプル
; サンプル
<pre class="brush:autolisp;">
<pre class="brush:autolisp;">
(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)
>> (10 6 4)

2011年12月21日 (水) 13:28時点における版

構文
(mapcar function list1... listn)
機能
指定されたリストの各要素を引数として関数を実行した結果のリストを返す。
引数
  • function : 関数。
  • list1... listn : 1 つ以上のリスト。 リストの数は、function 引数が必要とする引数の数に一致していなければならない。
戻り値
リスト。


サンプル
(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)