Maintenant, nous savons tous que la plupart des langages ont des moyens très simples de «s'auto-modifier». Cependant, que se passerait-il si vous deviez réellement modifier le code et en éditer des parties ... sur le disque?
Votre objectif est de créer un code qui imprime un nombre, puis édite son propre fichier pour remplacer le numéro par le suivant dans la séquence de Fibonacci comme suit:
$ ./program
1
$ ./program
1
$ ./program
2
$ ./program
3
$ ./program
5
[etc...]
Règles
- Vous ne pouvez pas enregistrer le (s) numéro (s) "en dehors" du code. Aucun commentaire, aucun ordre de quitter le script, aucun EOF, etc.
- Si votre code fonctionne avec n'importe quel nom de fichier, soustrayez 2 de votre nombre d'octets et inscrivez
$BYTESNOW ($ORIGINALBYTES - 2)
votre titre. (Les noms de fichiers sont supposés être dans la plage de tout chemin de fichier alphanumérique.) - Votre code doit écrire la sortie dans le fichier seul, sans aucune assistance de tuyauterie externe.
- Votre code peut commencer à partir de un ou de zéro. Ça n'a pas d'importance.
perl6 program
), ou doit-il inclure la ligne shebang afin qu'il puisse être appelé comme ./program
?
program
, et pouvons-nous supposer qu'il se trouve dans le répertoire de travail actuel?
"a"
place de arg[0]
. Cela ne semble pas en valoir la peine.