Intro Blog

プログラミング言語を作っています

IntroJS の範囲式

IntroJS では、for 文の式の部分に、範囲式を指定できます。 (逆に、for 文以外では、範囲式を使うことはできません。)

範囲式の書式は次のとおりです。

初期値 範囲演算子 境界値 [スキップ演算子 増分]

範囲式には、範囲演算子が必須です。 次の範囲演算子があります。

範囲演算子 初期値 境界値 増分
:< 含む 含まない +1
:<= 含む 含む +1
:> 含む 含まない -1
:>= 含む 含む -1

次の例では 0, 1, 2 を 1 行ずつ出力します。

for i in 0 :< 3
  write_int(i)
end

次の例では 0, 1, 2, 3 を 1 行ずつ出力します。

for i in 0 :<= 3
  write_int(i)
end

次の例では 3, 2, 1 を 1 行ずつ出力します。

for i in 3 :> 0
  write_int(i)
end

次の例では 3, 2, 1, 0 を 1 行ずつ出力します。

for i in 3 :>= 0
  write_int(i)
end

スキップ演算子は、:% のみがあり、続けて増分を指定します。

スキップ演算子と増分の部分は、省略可能です。 省略すると、前記のように、範囲演算子によって増分のデフォルト値が採用されます。

次のように記述すると、0, 2, 4 を 1 行ずつ出力します。

for i in 0 :< 5 :% 2
  write_int(i)
end

他のプログラミング言語では、範囲演算子..... を使うことが多いですが、どっちが含むで、どっちが含まないか、分かりにくいと感じていたので、 IntroJS では、(ドットを縦に並べたように見える)コロンと、比較演算子の組み合わせで表現してみました。

ということで、整数型しか使えない簡易プログラミング言語 IntroJS は、いかがでしょうか。

IntroJS