Aqui está uma explicação visual; desculpe, não é uma história em quadrinhos, mas deve ilustrar:
-
etapa 1: execute a função
:
-
etapa 2: a função executa duas cópias de si mesma, usando um pipe para iniciar ambas em paralelo (o operador de plano de fundo não parece realmente importar aqui, conforme descrito na resposta a Como funciona uma bomba bifurcada? )
(:|:)
(estou usando parênteses aqui apenas para esclarecer)
-
etapa 3: repita o processo para cada
:
((:|:)|(:|:))
-
e assim continua
(((:|:)|(:|:))|((:|:)|(:|:)))
e on, substituindo cada
:
por(:|:)
em cada etapa((((:|:)|(:|:))|((:|:)|(:|:)))|(((:|:)|(:|:))|((:|:)|(:|:)))) (((((:|:)|(:|:))|((:|:)|(:|:)))|(((:|:)|(:|:))|((:|:)|(:|:))))|((((:|:)|(:|:))|((:|:)|(:|:)))|(((:|:)|(:|:))|((:|:)|(:|:))))) ((((((:|:)|(:|:))|((:|:)|(:|:)))|(((:|:)|(:|:))|((:|:)|(:|:))))|((((:|:)|(:|:))|((:|:)|(:|:)))|(((:|:)|(:|:))|((:|:)|(:|:)))))|(((((:|:)|(:|:))|((:|:)|(:|:)))|(((:|:)|(:|:))|((:|:)|(:|:))))|((((:|:)|(:|:))|((:|:)|(:|:)))|(((:|:)|(:|:))|((:|:)|(:|:))))))
até que o sistema fique sem recursos (até o momento ele ficará muito pouco responsivo).