とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

クラス⊃関数⊃ブロック

C++で考える。以下,あまり意味のないコード:

int f(){
    int a = 2;
    int b = 314159;
    b *= a;
    cin << b;
}
int main(){
    f();
}

fの呼出しは,無名クラスが生成されfと全く同じ内容のコンストラクタが走ったのと同じではないか?
ブロックはそこで無名関数が呼ばれたのと同じではないか?その無名関数はさらに↑を適用できる。
ここらへんは JavaScript とか Scheme あたりと臭いが同じ気がする。変数の宣言(つまりK&R Cのブロック)と関数の宣言(定義)が置き換えられるなんてのは,まんまSchemeからのアイディアだったり。