Напишите программу (или функцию) (назовем ее P1), которая при запуске выводит другую программу P2 на том же языке и ровно на 1 байт длиннее P1.
Программа P2 при запуске должна вывести третью программу P3, которая на 1 байт длиннее P2. P3 должен выводить программу P4, которая на один байт длиннее P3 и т. Д. То же самое для P5, P6, ..., P∞.
Цепочка программ должна идти бесконечно или в такое место, где интерпретатор больше не может справиться (но должен оставаться теоретически верной программой на языке)
правила
- Стандартные лазейки запрещены
- Все программы в цепочке должны быть на одном языке
- Нет данных. Вывод идет в стандартный вывод или возвращаемое значение функции
- Программа должна завершиться через некоторое время. Программа, которая прекращает генерировать выходные данные после определенного промежутка времени, но никогда не завершает свою работу, не квалифицируется
Победит самая короткая программа P1 в байтах на каждом языке!
"puts <<2*2,2\nputs <<2*2,2\n\n2"
увеличивается на 2 на каждой итерации в Ruby. Я не мог найти ничего лучше. : - /. Интересный вызов!