「Lambda」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
(ページの作成: ; 構文 : (lambda ''arguments'' ''expr''...) ; 機能 : 匿名の関数を定義する。 :lambda 関数は、新しい関数を定義するとそのオーバーヘッドが…)
 
編集の要約なし
16行目: 16行目:


; サンプル
; サンプル
<pre class="brush:autolisp;">
  (apply '(lambda (a b c)
  (apply '(lambda (a b c)
   (+ a (* b c)))
   (+ a (* b c)))
   '( 5 2 3))   
   '( 5 2 3))   
  '''11'''   
  '''11'''   
: ---
 
  (apply '(lambda (x y z)   
  (apply '(lambda (x y z)   
   (* x (- y z))   
   (* x (- y z))   
36行目: 37行目:
  0  
  0  
  '''(10 20 -30 51.0)'''  
  '''(10 20 -30 51.0)'''  
 
</pre>
-----
-----
関連事項
関連事項

2011年4月19日 (火) 12:06時点における版

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

関連事項