Peut-être connaissez-vous le challenge des "quine", en informatique ?
Si oui, très bien, vous n'avez plus qu'à en faire un en Nspire-Lua
Si non, le principe est simple : c'est une sorte de programme qui doit afficher son propre code source (seulement, et complètement/exactement).
Plus d'informations et d'exemples ici : http://fr.wikipedia.org/wiki/Quine_(informatique)
Le gagnant sera celui qui aura réussi à faire le quine le plus court, marchant sur Nspire (OS 3.6, disons)
(et pas droit au troll classique du code source vide)
Topic-frère/source en Nspire-Basic : viewtopic.php?f=18&t=15084
[Mini-Challenge #4] : Quine
[Mini-Challenge #4] : Quine
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14614
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
Re: [Mini-Challenge #4] : Quine
Et, pour info, j'en ai un de 74 caractères
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14614
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
Re: [Mini-Challenge #4] : Quine
Honteusement pompé et modifié depuis http://lua-users.org/lists/lua-l/2008-05/msg00364.html
65 caractères.
PS : entre [[ et print il y a une tabulation. Pareil pour les autres "trous". Donc ne copiez pas le code depuis le forum, quotez moi.
65 caractères.
- Code: Tout sélectionner
s=[[ print('s=[[',s,']'..'];',s) ]]; print('s=[[',s,']'..'];',s)
PS : entre [[ et print il y a une tabulation. Pareil pour les autres "trous". Donc ne copiez pas le code depuis le forum, quotez moi.
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Messages: 6414
- Images: 22
- Inscription: 27 Nov 2008, 00:00
- Localisation: 0x1AACC355
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: BAC+5: Epita (ING3)
Re: [Mini-Challenge #4] : Quine
Bon ... http://lua-users.org/lists/lua-l/2008-05/msg00379.html est encore plus court ...
45 caractères :
C'était mon idée de départ, mais je ne connaissais pas %q, qui n'est pas POSIX
45 caractères :
- Code: Tout sélectionner
s="s=%qprint(s:format(s))"print(s:format(s))
C'était mon idée de départ, mais je ne connaissais pas %q, qui n'est pas POSIX
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Messages: 6414
- Images: 22
- Inscription: 27 Nov 2008, 00:00
- Localisation: 0x1AACC355
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: BAC+5: Epita (ING3)
Re: [Mini-Challenge #4] : Quine
Levak a écrit:Bon ... http://lua-users.org/lists/lua-l/2008-05/msg00379.html est encore plus court ...
45 caractères :
- Code: Tout sélectionner
s="s=%qprint(s:format(s))"print(s:format(s))
C'était mon idée de départ, mais je ne connaissais pas %q, qui n'est pas POSIX
Ah ben oui, effectivement, "%q" est magique et je ne le connaissais pas non plus ...
( http://lua-users.org/wiki/StringLibraryTutorial : "An additional option %q puts quotes around a string argument's value", ce qui permet de passer outre les problèmes d'échappement présents bien souvent dans les quine ^^)
Enfin bref, on aura appris quelque chose, c'est bien.
Ma solution était une amélioration du premier message repris, et en effet si on met des virgules, ça reproduit un code source qui fait la même chose, mais si on veut faire 100% le même :
- Code: Tout sélectionner
s=[[print('s=['..'['..s..']'..']'..s)]]print('s=['..'['..s..']'..']'..s)
(le pourquoi du comment des concaténations de crochets, c'est parce qu'on ne peut plus imbriquer des commentaires comme ça depuis la version 5.1 (je crois) : "nesting of [[...]] is deprecated near '['")
On va voir si quelqu'un trouve mieux (j'en doute)
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14614
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
Re: [Mini-Challenge #4] : Quine
Adriweb a écrit: mais si on veut faire 100% le même :
Pas compris. La solution avec les tabulations fonctionne hein. Juste chiant à copier/coller.
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Messages: 6414
- Images: 22
- Inscription: 27 Nov 2008, 00:00
- Localisation: 0x1AACC355
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: BAC+5: Epita (ING3)
Re: [Mini-Challenge #4] : Quine
En fait, en testant, j'ai remarqué que ta solution ne marche plus en Lua 5.1, mais bref, si on prend la mienne (même chose) avec des virgules, ça donne effectivement un truc qui ressemble (j'ai testé un peu trop rapidement parce que j'avais toujours des tab en plus, mais bon.)
BTW : après des symboles du genre ( ) { } [ ] t'es pas obligé de mettre un espace (ou un point-virgule)
BTW : après des symboles du genre ( ) { } [ ] t'es pas obligé de mettre un espace (ou un point-virgule)
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14614
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
Re: [Mini-Challenge #4] : Quine
Adriweb a écrit:BTW : après des symboles du genre ( ) { } [ ] t'es pas obligé de mettre un espace (ou un point-virgule)
Oui, mais mettre une tabulation, c'était pour économiser un caractère sur la concaténation. ".." => ",". Sauf que print(a, b) va foutre une tabulation entre a et b, et pas un espace.
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Messages: 6414
- Images: 22
- Inscription: 27 Nov 2008, 00:00
- Localisation: 0x1AACC355
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: BAC+5: Epita (ING3)
Re: [Mini-Challenge #4] : Quine
Je bat tous les record, ma quine est imbattable:
Voilà, 0 caractères, essayez de faire mieux
- Code: Tout sélectionner
Voilà, 0 caractères, essayez de faire mieux
Votez Kasane Teto 2017
-
technolapin
Niveau 13: CU (Calculateur Universel)- Messages: 514
- Images: 25
- Inscription: 31 Déc 2012, 10:48
- Localisation: Chez moi
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: Chui en vacance ducon
Re: [Mini-Challenge #4] : Quine
J'avais lancé d'abord celui en TI-Basic où ce troll n'était pas possible, et j'ai pas pensé à l'interdire en Lua, mais bon, c'est pas comme s'il comptait vraiment
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14614
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
27 messages
• Page 1 sur 3 • 1, 2, 3
Retourner vers Mini-Challenges
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité