Lisp-do

提供:Dev Guides
移動先:案内検索

LISP-コンストラクト

doコンストラクトは、LISPを使用して反復を実行するためにも使用されます。 反復の構造化された形式を提供します。

doステートメントの構文-

(do ((variable1    value1   updated-value1)
      (variable2   value2   updated-value2)
      (variable3   value3   updated-value3)
   ...)
   (test return-value)
   (s-expressions)
)

各変数の初期値が評価され、それぞれの変数にバインドされます。 各句の更新された値は、変数の値が各反復で更新される方法を指定するオプションの更新ステートメントに対応します。

各反復の後、テストが評価され、非nilまたはtrueを返す場合、戻り値が評価されて返されます。

最後のs-expression(s)はオプションです。 存在する場合、テスト値がtrueを返すまで、各反復後に実行されます。

main.lispという名前の新しいソースコードファイルを作成し、その中に次のコードを入力します-

(do ((x 0 (+ 2 x))
   (y 20 ( - y 2)))
   ((= x y)(- x y))
   (format t "~% x = ~d  y = ~d" x y)
)

実行ボタンをクリックするか、Ctrl + Eを入力すると、LISPはすぐに実行し、返される結果は-

x = 0  y = 20
x = 2  y = 18
x = 4  y = 16
x = 6  y = 14
x = 8  y = 12