「Lambda」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
(ページの作成: ; 構文 : (lambda ''arguments'' ''expr''...) ; 機能 : 匿名の関数を定義する。 :lambda 関数は、新しい関数を定義するとそのオーバーヘッドが…)
 
編集の要約なし
 
(同じ利用者による、間の2版が非表示)
1行目: 1行目:
{{AutoLISP}}
; 構文
; 構文
: (lambda ''arguments'' ''expr''...)
: (lambda ''arguments'' ''expr''...)
6行目: 7行目:
: 匿名の関数を定義する。
: 匿名の関数を定義する。
:lambda 関数は、新しい関数を定義するとそのオーバーヘッドが無視できない場合に使用する。また、使用する位置に関数を配置するので、プログラマの意図がより明確になる。リストに対して関数を実行する apply 関数や mapcar 関数と組み合わせて使用されることがよくある。
:lambda 関数は、新しい関数を定義するとそのオーバーヘッドが無視できない場合に使用する。また、使用する位置に関数を配置するので、プログラマの意図がより明確になる。リストに対して関数を実行する apply 関数や mapcar 関数と組み合わせて使用されることがよくある。


; 引数
; 引数
:* arguments : 式に渡される引数。  
:* arguments : 式に渡される引数。  
:* expr : LISP 式。  
:* expr : LISP 式。  


; 戻り値
; 戻り値
16行目: 19行目:


; サンプル
; サンプル
(apply '(lambda (a b c)
<pre class="brush:autolisp;">
  (+ a (* b c)))
(apply '(lambda (a b c)
  '( 5 2 3))   
  (+ a (* b c)))
'''11''' 
  '( 5 2 3))   
: ---
11
(apply '(lambda (x y z)   
 
  (* x (- y z))   
(apply '(lambda (x y z)   
  )   
  (* x (- y z))   
  '(5 20 14)   
  )   
)  
  '(5 20 14)   
30  
)  
(setq counter 0)  
30  
(mapcar '(lambda (x)   
 
  (setq counter (1+ counter))   
(setq counter 0)  
  (* x 5)   
(mapcar '(lambda (x)   
  )   
  (setq counter (1+ counter))   
  '(2 4 -6 10.2)   
  (* x 5)   
)
  )   
0  
  '(2 4 -6 10.2)   
'''(10 20 -30 51.0)'''
)
0  
(10 20 -30 51.0)
</pre>


-----
-----
関連事項
関連事項
*  
* [[apply]]
* [[mapcar]]
 


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

2015年9月15日 (火) 21:56時点における最新版

構文
(lambda arguments expr...)


機能
匿名の関数を定義する。
lambda 関数は、新しい関数を定義するとそのオーバーヘッドが無視できない場合に使用する。また、使用する位置に関数を配置するので、プログラマの意図がより明確になる。リストに対して関数を実行する apply 関数や mapcar 関数と組み合わせて使用されることがよくある。


引数
  • arguments : 式に渡される引数。
  • expr : LISP 式。


戻り値
最後の expr の値。


サンプル
(apply '(lambda (a b c)
  (+ a (* b c)))
  '( 5 2 3))  
11

(apply '(lambda (x y z)  
  (* x (- y z))  
  )  
  '(5 20 14)  
) 
30 

(setq counter 0) 
(mapcar '(lambda (x)  
  (setq counter (1+ counter))  
  (* x 5)  
  )  
  '(2 4 -6 10.2)  
)
0 
(10 20 -30 51.0)

関連事項