- Curiosité : le Plus Petit Programme Qui Ecrit Son Source A L'Ecran, en C.
(Ca n'est pas si évident ... On ne peut pas ouvrir le fichier source
puisqu'on ne connaît pas son nom => le programme se contient lui-même.
Ca devient méchamment récursif, non ?)
Solution:
main(){char*p="main(){char*p=%c%s%c;(void)printf(p,34,p,34,10);}%c";(void)printf(p,34,p,34,10);}
Principe :
La solution est basée sur le fait que printf() fonctionne comme un
interpréteur à un niveau.
Ce problème est du même type que les propositions logiques qui comportent
des assertions sur elles-mêmes (ou les prédicats d'ordre 1 si mes souvenirs
sont bons), du genre : un Crétois vous dit "Tous les Crétois mentent" ...
Le problème peut se résoudre dans d'autres langages sans l'équivalent de
printf (), avec maux de tête garantis ...
Si vous êtes volontaire pour la même chose en Lisp -> pppqessale_lisp@mapis.net