「Mapcar」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
編集の要約なし
編集の要約なし
 
(同じ利用者による、間の4版が非表示)
1行目: 1行目:
{{AutoLISP}}
; 構文
; 構文
: (mapcar function list1... listn)
: (mapcar function list1... listn)


; 機能
; 機能
: 指定されたリストの各要素を引数として関数を実行した結果のリストを返す。
: 指定されたリストの各要素を引数として関数を実行した結果のリストを返す。


; 引数
; 引数
:* function : 関数。
:* function : 関数。
:* list1... listn : 1 つ以上のリスト。 リストの数は、function 引数が必要とする引数の数に一致していなければならない。
:* list1... listn : 1 つ以上のリスト。 リストの数は、function 引数が必要とする引数の数に一致していなければならない。


; 戻り値
; 戻り値
14行目: 18行目:


; サンプル
; サンプル
<pre class="brush:autolisp;">
<pre class="brush:javascript;">
(mapcar '+ '(5 3 2) '(10.0 10.0 0))
(mapcar '+ '(5 3 2) '(10.0 10.0 0))
>> (15.0 13.0 2)
(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)


(setq a 10 b 20 c 30)  
(setq a 10 b 20 c 30)  
30
30
(mapcar '1+ (list a b c))  
 
(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)
</pre>


: mapcar 関数で実行する匿名の関数を、lambda 関数で指定できる。関数の引数が定数の場合や別の手段で与えられる場合に便利である。
; mapcar 関数で実行する匿名の関数を、lambda 関数で指定できる。関数の引数が定数の場合や別の手段で与えられる場合に便利である。
:次の例では、lambda 関数と mapcar 関数を一緒に使用している。
; 次の例では、lambda 関数と mapcar 関数を一緒に使用している。
<pre class="brush:autolisp;">
 
(mapcar '(lambda (x)   
(mapcar '(lambda (x)   
  (+ x 3)  
(+ x 3)  
  )   
  )   
  '(10 20 30)  
  '(10 20 30)  
)  
)  
>> (13 23 33)
>> (13 23 33)
</pre>
</pre>
-----
関連事項
* [[apply]]
* [[lambda]]


[[Category:AutoLISP]]
[[Category:AutoLISP]]

2021年5月29日 (土) 11:03時点における最新版

構文
(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)



関連事項