作者: Bruce.
日時: 2008/5/23(10:52)
Bruce.です。

機械伯爵 writes:

>  このあたりの話なら、一応大丈夫だな(笑)
> 
>  機械す。
> 
> ※最近、自分の知識に自信が持てなくなってる……
> 
> > 別に変数でも何でもいいですが、BASIC時代(Cでも?)に使われた、変数 == 箱
> > モデルで説明するのは勘弁といったところでしょうか。そんなものにたとえて
> > 覚えさせるから、関数(メソッド)の引数としてどのように振舞うかで混乱が起
> > きてしまう。
> 
>  まぁ実際、Cは箱でしたからねぇ(だから入れ物のサイズ指定が必要)
> 
>  BASICはしばらく使ってないんで忘れましたが、確か文字と数値では、変数の
> 書き方が違うんじゃなかったでしたっけ?

えーとですね、型を明示すると処理速度が上がるとかいう特典があるんですが
特になくてもかまわないです。型を明示している変数に別の型の値を代入しよう
とすると当然エラーになりますが、型の明示がない場合には、代入する値の
型の変数に「化ける」ことになります。

んで、型の明示にはPerlの変数の頭についてるアレみたいなのが、変数名の
「尻尾」につきます。

処理系によって多少違いがあるかもしれませんが、

$ → 文字列
! → 単精度実数
& → 倍精度実数
% → 整数

こんなんだったかなあ。
VBなんかだと通貨型(Currency)なんてのもあったはず。
 
>  えっと、BASICって配列もつかえたんだっけ(あかん、完璧に忘れてる。あと
> でポケコンのマニュアル読みなおそう……)

いくらなんでもそりではBASICが可哀想でありまする。>配列が使えない

>  だから「変数じゃねーってばっ!」と言う方が早いかな、と思ったんですが。

あい。
まあそういう言い方もありということで。

> > って、Pythonの短整数もポインタの先にあるんでしたっけ?
> 
>  一応そうですよ。
>  だから(1).__add__(1)とかいう、あやしい書き方もできる☆。

へー。

整数演算時にオーバーヘッドがでかくなりそうな気がするんですが、
なにかワザを駆使してたりするんでしょうか。

あと、最後のアヤシイワザですが、ポインタとしては短整数を持っていない
Rubyでも 1.__send__(:+, 2) とかできますが?(笑)

いじょ。