第65回
端的に言うと、あのネタをやります。
コード
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  戻る