 簡易アニメーションスクリプト
 テスト版

 1998/12/4 Takashi TOYOSHIMA

 Lisp に似ている、というかその簡易版？
 全体は (main exp1 exp2) という special form で記述する。
 (main exp1 exp2) は数値を返さなければならず、その値をx
 とすると、xミリ秒後に再度評価させる。x が 0 になるまで
 この動作は繰り返される。

 <注意>
 エラーチェックとか甘いので、文法違反していてもそのまま
 動いてしまう部分があると思います。基本的にLispのルール
 に従うので、そちらに従って記述して下さい(^^;。おかしい
 所は連絡して頂けると助かります。それと、基本的にサンプル
 データを作る際に必要になった関数しか実装していないので
 こんな関数が欲しいなどあったら連絡願います。


 <関数解説>
(main exp1 exp2)
         最初の実行時のみ exp1 を評価し次回以降は exp2
        を評価する。exp1 の中で変数の定義や初期化処理を
        行うと良い。
  [返値] 最初の実行時は exp1 の値、次回以降は exp2 の値。

(begin a1 a2 ... an)
         a1,a2,...,an と順に評価する。
  [返値] an の値

(cond (exp1 exp1') (exp2 exp2') ... (expn expn'))
         exp1,...,expn が非0なら、それぞれ exp1',...expn' が
        評価される。
  [返値] 評価した式の値

(define var n)
         変数 var を初期値 n で作る。
  [返値] 不定

(setq var n)
         変数 var に n を代入する。var は事前に定義が必要。
  [返値] 不定

(rand n)
         0〜n までの乱数を作る。
  [返値] 乱数

(+ exp1 exp2)
         exo1 と exp2 の値を足します。
  [返値] 計算結果

(- exp1 exp2)
         exo1 と exp2 の値を引きます。
  [返値] 計算結果

(and exp1 exp2)
         exo1 と exp2 の論理積をとります。
  [返値] 計算結果

(or exp1 exp2)
         exo1 と exp2 の論理和をとります。
  [返値] 計算結果

(= exp1 exp2)
         exp1 と exp2 が等しいか調べる。
  [返値] 等しい時は非0、異なる時は0

(> exp1 exp2)
         exo1 と exp2 を比較します。
  [返値] exp1 のほうがでかいなら非0、小さいなら0

(< exp1 exp2)
         exo1 と exp2 を比較します。
  [返値] exp2 のほうがでかいなら非0、小さいなら0

(>= exp1 exp2)
         exo1 と exp2 を比較します。
  [返値] exp1 のほうがでかい或は等しいなら非0、小さいなら0

(<= exp1 exp2)
         exo1 と exp2 を比較します。
  [返値] exp2 のほうがでかい或は等しいなら非0、小さいなら0

(chg-grp n)
         表示している画像をn番のものに切り替える(0〜画像数-1)。
  [返値] 不定

(get-pos-by-per)
         現在の表示位置を窓の横幅に対する％で返す。
  [返値] 表示位置(%)

(set-pos-by-per pos)
         現在の表示位置を窓の横幅に対する％で指定する。
  [返値] 不定

