| 端的に言うと、あのネタをやります。 |
| コード |
var //今回はvarが最後まで続く変なコードです
a=[], //配列です
f=0, //何回Double()したか
/*↓aはもちろんグローバル変数。*/
Double=function(){
a=[a,a]
},
/*↓再帰使いたかったけどY Combinatorわからん*/
Main=function(n){
for(var i=0;i<n;i++)
Double()
f+=n
},
/*↓fはDoubleした回数。2^fは構造的に一番下(?)のaの要素の総数*/
Now=function(){
alert(f+'\n'+Math.pow(2,f))
},
/*↓タバコです。多分*/
ABomb=function(){
alert((''+a).length)
} |
| Main(100)やMain(1000)の後にABombを実行するとやばいです。ブラクラってレベルではなく、 それは麻薬で原子爆弾で、こんな特別な関数を実行できるなんて、私はきっと特別な存在なのだろうと感じました。 今まで見たことも無いOSからの警告、「仮想メモリが…」 |
| (''+a)によってaを文字列に変換するのがひどく大変なようです。が、 a[0][0][0]…[0]とかもちゃんと定義できてる、ということみたいです。 |
| この実験でわかることは、(多分)非常に大きな情報をJSで扱うなら断然配列だってことです。 そして、数行でメモリを無限に喰い続けるプログラムが作れる、ということも。 |
| top 戻る |