n > 2 and m > 1 の時の n {{{1}}} m を計算しようとすると、こうなります。
爆発 (Explosion) は、BEAFで \(a\ \{\{\{1\}\}\}\ b = \{a,b,1,3\}\) と書く関数である[1]。
直感的には、爆発はこのように定義出来る。
\[a\ \{\{\{1\}\}\}\ b = a\ \{\{a\ \{\{a \ldots \{\{a\}\} \ldots a\}\}\ a\}\}\ a\]
ここで、 \(a\) から外側へ \(b\) 個コピーされている。
急増加関数では、 \(f_{\omega \times 2+1}(n)\) が爆発の増加速度となる。
疑似コード[]
以下が、爆発の疑似コードの例である。
function explosion(a, b):
result := a
repeat b - 1 times:
result := hyperexpansion(a,a,result)
return result
function hyperexpansion(a, b, n):
result := a
repeat b - 1 times:
if n = 1:
result := hyper(a,a,result+2)
else:
result := hyperexpansion(a, result, n - 1)
return result
function hyper(a, b, n):
if n = 1:
return a + b
result := a
repeat b - 1 times:
result := hyper(a, result, n - 1)
return result