Çalıştırıldığında, aynı dilin P2 programını P1'den tam olarak 1 bayt daha uzun veren bir program (veya fonksiyon) yazalım (P1 diyelim).
Çalışırken P2 programı, P2'den 1 byte daha uzun bir 3. program P3 vermelidir. P3, P3, vs.'den bir bayttan daha uzun bir program P4 vermelidir. P5, P6, ..., P∞ için de aynı.
Program zinciri süresiz olarak veya tercümanın artık idare edemediği bir yere gitmelidir (ancak dilde teorik olarak geçerli bir program olarak kalmalıdır)
kurallar
- Standart boşluklar yasaktır
- Zincirdeki tüm programlar tek dilde olmalıdır
- Hiçbir giriş yapılmamıştır. Çıktı stdout veya işlev dönüş değerine gider
- Program bir süre sonra bitmelidir. Belli bir zaman noktasından sonra çıktı üretmeyi durduran ancak hiçbir zaman sonlanmayan bir program
Her dilde bayt cinsinden en kısa P1 programı kazanır!
"puts <<2*2,2\nputs <<2*2,2\n\n2"
Ruby'de her yinelemede 2 büyür. Daha iyi bir şey bulamadım. : - /. İlginç bir meydan okuma!