Previous: Using setq, Up: set & setq [Contents][Index]
以下はカウンターの中でどのようにsetq
を使用するかを示すための例です。あなたのプログラムの一部が何回繰り返されたかを計数するために、この例を使えるかもしれません。まず変数を0にセット、その後はプログラム自身が繰り返される度に数値に1を加算します。これを行うにはカウンターの役目をもつ変数が1つ、そしてカウンター変数に0をセットする初期化用のsetq
式と評価される度にカウンターを増分する2つ目のsetq
という2つの式が必要になります。
(setq counter 0) ; この初期化式を呼び出してみましょう (setq counter (+ counter 1)) ; これは加算式 counter ; これはカウンター
(‘;’の後に続くテキストはコメントです。Change a Function Definitionを参照してください。)
これらのうち1つ目の式、つまり初期化式である(setq counter
0)
を評価してから、3つ目の式であるcounter
を評価すると、数値の0
がエコーエリアに表示されます。その後に2つ目の式、つまり加算式である(setq
counter (+ counter
1))
を評価すれば、カウンターの値が1になります。つまりcounter
をもう一度評価すれば、数値1
がエコーエリアに表示されるはずです。2つ目の式を評価する度に、カウンターの値が増分されます。
加算式の(setq counter (+ counter
1))
を評価したとき、Lispインタープリターはまずもっとも内側のリストの評価、つまり加算を行います。このリストを評価するためには、インタープリターは変数counter
と数値の1を評価しなければなりません。インタープリターが変数counter
を評価すると、変数のカレント(current:
現在、その時点)の値を受け取ります。インタープリターはその値と数値の1を+
に渡して、これらの2つが足し合わされます。内側のリストの値として加算された合計がリターンされてsetq
に渡されて、この新しい値がcounter
にセットされるのです。その結果として変数counter
の値が変更されます。