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
?
program
i 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.