<文> ::= <項><関数> | <項>(<文>) | <文><文> 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 |
![]() |