変数の束縛

束縛とは

「萌香」にも他の言語と同じように変数があります。

しかし、CやBasicのような代入はありません。 「萌香」では束縛という概念を使います。 RubyやJavaの参照という概念に近いものだと考えて下さい。 (Javaにも代入はあるとかはこのさいなしね。) 感覚的には参照はシンボルが値を指し示しているという感じですが、 束縛はシンボルと値が結びつけられている感覚だと考えて下さい。

束縛とは数値や文字列などをシンボルに結びつけることです。 数値や文字列に名前を付けるような感覚です。

シンボルと値を結びつけるには"定義"という文法を使います。

束縛の作り方

束縛はdefine(とそのエイリアスの"定義")構文により作製されます。 具体的には以下のようになります。

「a を 100.0 と 定義 します」
「b を 20.0  と 定義 します」
「(a b +) を 表示 します」
     ---> 120.0

「文字列 を "世界のみなさん、こんにちは !!" と 定義 します」
「文字列 を 表示」
     ---> 世界のみなさん、こんにちは !!

束縛していないシンボルにアクセスした場合エラーとなります。

束縛の変更

束縛を変更するにはset!(とそのエイリアスの"セット")構文を使います。 以下のようになります。

「a を 10.0 と 定義 します」
「a を 表示」
     ---> 10.0

「a を 20.0 と セット します」
「a を 表示」
     ---> 20.0

defineによって束縛されていないシンボルに対してset!を行おうとした場合 エラーとなります。 ですので、set!によって変更を行おうとする変数はまえもって defineにより定義して下さい。

このように「萌香」では変数を書き変えるプログラムを組むのは ちょっと面倒になっています。 set!を使わなくてもプログラムが組めるというのは もう少し後で出て来ます。