「Progn」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
編集の要約なし
 
編集の要約なし
16行目: 16行目:


; サンプル
; サンプル
<pre class="brush: autolisp;">
  (setq a 9)
  (setq a 9)
  (if (>= a 8)
  (if (>= a 8)
21行目: 22行目:
   (setq (1+ b)
   (setq (1+ b)
  ))
  ))
  '''10'''   
  '''10'''  
</pre>
   
: ---
: ---
: if 関数は通常、テスト式の評価結果が nil 以外の場合、1 つの then 式を評価する。
: if 関数は通常、テスト式の評価結果が nil 以外の場合、1 つの then 式を評価する。
: 次の例は progn 関数を使用して、if 関数の後の 2 つの式を評価している。
: 次の例は progn 関数を使用して、if 関数の後の 2 つの式を評価している。
<pre class="brush: autolisp;">
  (setq a 1 b 1)
  (setq a 1 b 1)
  (if (= a b)  
  (if (= a b)  
34行目: 38行目:
  A = B
  A = B
  '''-9'''
  '''-9'''
</pre>


-----
-----

2010年3月25日 (木) 13:22時点における版

構文
(progn [expr]...)


機能
各式を順に評価して最後の式の値を返す。
progn 関数を使用すると、1 つの式しか指定できない箇所で複数の式を評価できる。


引数
  • expr : 1 つ以上の LISP 式。
戻り値
最後に評価した式の結果。


サンプル
 (setq a 9)
 (if (>= a 8)
 (progn (setq b a)
   (setq (1+ b)
 ))
 '''10''' 
---
if 関数は通常、テスト式の評価結果が nil 以外の場合、1 つの then 式を評価する。
次の例は progn 関数を使用して、if 関数の後の 2 つの式を評価している。
 (setq a 1 b 1)
 (if (= a b) 
   (progn 
     (princ "¥nA = B ") 
     (setq a (+ a 10) b (- b 10)) 
   ) 
 ) 
 A = B
 '''-9'''

関連事項