※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

  • 変数関係の補足

val pi=3.14 は、いわゆる、変数への代入ではない。
MLでは、static bindingといって、piという変数に3.14という値をbind
結びつけている。

MLは、一度、bindするとその値は変わることがない。
しかし、
val pi=0.0;
とすると、piは0.0と評価される。
実は、piの再定義によって、古いpiのbindingがきえたわけではなく、隠されただけという。

例えば、
val pi=3.14;
val area=pi*3.0*3.0; (-> 28.26)
val pi=0.0;
area; (-> 28.26)(0とはならない)

変数名とそれにbindされている値の組み合わせの集合を環境(environment)という。
areaの環境ではpi=3.14であり、その外でpiの値を再定義しても、
areaの環境には影響がない。static binding

関数の場合も同様である。

val y=20;
fun f x = x + y;
f 3 ; (->23)
val y =99;
f 3 ;(->23)(102とはならない)
名前:
コメント: