Teraz wszyscy wiemy, że większość języków ma bardzo proste sposoby na „samodzielną modyfikację” kodu. Co jednak, jeśli faktycznie zmodyfikujesz kod i edytujesz jego części ... na dysku?
Twoim celem jest utworzenie kodu, który wypisze liczbę, a następnie edytuje własny plik, zastępując go numerem kolejnym w sekwencji Fibonacciego:
$ ./program
1
$ ./program
1
$ ./program
2
$ ./program
3
$ ./program
5
[etc...]
Zasady
- Nie możesz przechowywać numerów poza kodem. Bez komentarzy, bez informowania skryptu o wyjściu, bez EOF itp.
- Jeśli kod działa z dowolną nazwą pliku, odejmij 2 od ilości bajtów i wpisz
$BYTESNOW ($ORIGINALBYTES - 2)tytuł. (Zakłada się, że nazwy plików mieszczą się w zakresie dowolnej ścieżki alfanumerycznej). - Twój kod musi zapisywać dane wyjściowe do pliku we własnym zakresie, bez żadnej pomocy zewnętrznego potoku.
- Twój kod może zaczynać się od zera lub zera. To nie ma znaczenia
perl6 program), Czy też musi on zawierać linię shebang, aby można ją było wywołać jako ./program?
programi czy możemy założyć, że znajduje się ona w bieżącym katalogu roboczym?
"a"zamiast arg[0]. To nie wydaje się tego warte.