変な人々は取り敢えず置いといて、マッタリとOCamlモードに
戻りましょう。(藁)
五十嵐先生の入門書に、以下Quote:
# let one = 1;;
val one : int = 1
# let two = one + one;;
val two : int = 2
# let one = "One";;
val one : string = "One"
# let three = one ^ one ^ one;;
val three : string = "OneOneOne"
この場合,one の値は 1 から "One" に更新されたわけではなく,
同じ名前の変数宣言により前の宣言が隠されて見えなくなっただけ
なのである.そもそも前の宣言と型が一致していないことに注意.
以上Unquote:
ここでint = 1は新たに束縛されたstring = "One"によって
隠蔽されている「だけ」とある。そこで質問です。
int =1を再度呼び出すにはどうしたら、良いのでしょう?
(もう一度 # let one = 1;;は無しで、(W)
まさか?super oneとか?それとも?cadr one!とか?(藁藁)
密かにガーベージコレクションにかかって実は抹殺されている!
とか???(大藁藁)