<文> ::= <項><関数> | <項>(<文>) | <文><文> Robotは<文>を実行します。 <項>はすぐ後のものの繰り返し回数を表わします。 <項> ::= a | <数> | 「何もなし」 「何もなし」は1を意味します。 aはAccの内容を意味します。 <数> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | <数><数> 0は2^31を意味します。 <関数> ::= 「組み込み関数」 | 「ユーザ関数」 「組み込み関数」、「ユーザ関数」ともに以下。
+ 1+ Accをインクリメント - 1- Accをデクリメント h Home 画面中央部に移動 n North 画面上方を向く c Clear 画面を消去 r Rotate 45度右へ回る f Forward 線を引きながら1step進む j Jump 線を引かずに1step進む t(<非ゼロ文>)(<ゼロ文>) Test Accが0でないなら<非ゼロ文>のみを Accが0なら<ゼロ文>のみを実行する dF(<定義文>) defun ユーザ関数Fを<定義文>として定義する
a Acc 項になってAccの値を示す このRobotにはAccが一つだけある (0-2^31の値を取る) : コマンドであることをしめす。 コマンドはKRobot独自の機能である。 Robotの言語仕様にはない。
英小文字かつ予約されていない一文字がユーザ関数名として使えます。
コマンドはKRobot独自の機能である。 コマンドは実行管理環境(トップレベル)に対する指令である。 :d ユーザ関数の全ての定義を表示する :n ユーザ関数をすべて消去する :<項>s f関数で進む距離をドット数で指定する コマンドを実行する場合も文を入力した後、 DoItでトップレベルに評価させる。 ただし、コマンドを評価することによって、スタックに影響を与えてしまう。 よって、コマンド評価後はContはできなくなる。
ドラゴン曲線 dx(t(-x6rk+)(f)) dk(t(-x2rk+)(f)) chna-10+x |
|
---|---|
ヒルベルト曲線 du(t(-vfxuyfufxv+)(x)) dv(t(-uyfvfxvyfu+)(y)) dx(6r) dy(2r) chna-5+2ru |
|
シェルピンスキー曲線 dx(t(-xfxufuxfx+)(v)) du(5r) dv(2r) dy(6r3r4(fx)) chna-2+y |
|