Ця 128-мовна quine ouroboros (програма, яка виводить програму іншою мовою, яка виводить програму ще однією мовою (125 мов пізніше), яка виводить оригінальну програму) є досить вражаючою. Але, на жаль, він має статичну кількість ітерацій.
Напишіть програму, яка виводить програму (не обов'язково іншою мовою, але це може бути), яка виводить програму, яка виводить програму тощо, яка після n ітерацій виводить оригінальну програму вперше (тобто немає проміжних Програма повинна бути такою ж, як і вихідна, тому що в іншому випадку функціонує квітка, яка ігнорує її введення), де n - негативне ціле число, яке надається як вхід. Вхід не може бути лише номером у вихідному вихідному коді (наприклад, розміщення x = <the value of n>на початку вашої програми), він повинен бути одним із наступних:
- Передано як аргумент командного рядка
- Читати зі стандартного введення
- Передано як аргумент функції, яка повертає / виводить нову програму.
Для проміжних етапів в ouroboros ваша програма може бути або повністю функціонуючою програмою, або функцією без аргументів, яка при виклику поверне / виведе наступну.
Ви не можете читати з самого вихідного файлу або використовувати будь-які вбудовані подібні квітами (я не думаю, що таких було б, але це може бути)
Щоб було зрозуміло, якщо n = 0програма повинна вивести власний вихідний код.
Якщо n = 1програма повинна вивести іншу програму, яка виводить вихідний вихідний код.
І так далі...
Найменше байт виграє!
Редагувати:
Я повинен був написати "Для проміжних етапів в ouroboros, ваша програма може бути або повністю функціонуючою програмою без введення даних , або функцією без аргументів". Якщо ваша програма виводить наступну ланцюжок, тоді чекає на введення, це добре, але вашій програмі не повинно бути потрібне початкове значення n.
getInput()використовується без будь-якого введення. Або ми можемо сказати, введіть щось випадкове, яке не використовується для пізніших ітерацій, щоб запобігти помилкам для getInput()? Ака чи справжня відповідь Python?
n, вивести програму, яка є "початковою програмою" івротерапії quine nітерацій, і що наша відповідь не повинна вважатися однією з nітерацій. Це правильно?