π
<-
Chat plein-écran
[^]

[Mini-Challenge #4] : Quine

Sous-forums réunissant les mini-challenges en Lua Nspire
Le premier est disponible ici

[Mini-Challenge #4] : Quine

Message non lude Adriweb » 18 Aoû 2014, 19:17

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 :D
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
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 78.3%
 
Messages: 14656
Images: 1118
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [Mini-Challenge #4] : Quine

Message non lude Adriweb » 18 Aoû 2014, 19:17

Et, pour info, j'en ai un de 74 caractères ;)
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 78.3%
 
Messages: 14656
Images: 1118
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [Mini-Challenge #4] : Quine

Message non lude Levak » 18 Aoû 2014, 20:15

Honteusement pompé et modifié depuis http://lua-users.org/lists/lua-l/2008-05/msg00364.html

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.
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
Avatar de l’utilisateur
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 98.9%
 
Messages: 6414
Images: 22
Inscription: 27 Nov 2008, 00:00
Localisation: 0x1AACC355
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: BAC+5: Epita (ING3)

Re: [Mini-Challenge #4] : Quine

Message non lude Levak » 18 Aoû 2014, 20:28

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 :(
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
Avatar de l’utilisateur
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 98.9%
 
Messages: 6414
Images: 22
Inscription: 27 Nov 2008, 00:00
Localisation: 0x1AACC355
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: BAC+5: Epita (ING3)

Re: [Mini-Challenge #4] : Quine

Message non lude Adriweb » 18 Aoû 2014, 20:35

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 ... :P

( 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) :P
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 78.3%
 
Messages: 14656
Images: 1118
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [Mini-Challenge #4] : Quine

Message non lude Levak » 18 Aoû 2014, 21:38

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.
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
Avatar de l’utilisateur
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 98.9%
 
Messages: 6414
Images: 22
Inscription: 27 Nov 2008, 00:00
Localisation: 0x1AACC355
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: BAC+5: Epita (ING3)

Re: [Mini-Challenge #4] : Quine

Message non lude Adriweb » 18 Aoû 2014, 21:44

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)
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 78.3%
 
Messages: 14656
Images: 1118
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [Mini-Challenge #4] : Quine

Message non lude Levak » 18 Aoû 2014, 21:53

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.
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
Avatar de l’utilisateur
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 98.9%
 
Messages: 6414
Images: 22
Inscription: 27 Nov 2008, 00:00
Localisation: 0x1AACC355
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: BAC+5: Epita (ING3)

Re: [Mini-Challenge #4] : Quine

Message non lude technolapin » 20 Aoû 2014, 09:53

Je bat tous les record, ma quine est imbattable:
Code: Tout sélectionner


Voilà, 0 caractères, essayez de faire mieux :troll:
Votez Kasane Teto 2017
Avatar de l’utilisateur
technolapin
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 97.8%
 
Messages: 514
Images: 25
Inscription: 31 Déc 2012, 10:48
Localisation: Chez moi
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Chui en vacance ducon

Re: [Mini-Challenge #4] : Quine

Message non lude Adriweb » 20 Aoû 2014, 11:07

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 :P
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 78.3%
 
Messages: 14656
Images: 1118
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Suivante

Retourner vers Mini-Challenges

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Offre de test des nouveautés de rentrée 2024 par Casio. Enseignant(e), reçois gratuitement 1 exemplaire, à ton choix, de la Graph Light ou bien de la Graph Math+
14€ remboursés par Casio sur l'achat de ta calculatrice Graph 35 d'ici le 31 Octobre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 90+E d'ici le 31 Décembre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 25 d'ici le 31 Décembre 2024
8€ remboursés par Casio sur l'achat de ta calculatrice Graph Math+ d'ici le 31 Octobre 2024
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 3€ peu importe son état. Même non fonctionnelle et donc invendable, même ancienne Graph 35 non conforme aux programmes (pas de Python), même ancienne Graph 25/35 inutilisable aux examens (pas de mode examen) et donc invendable. Etiquette de retour fournie, pas de frais de port à payer.
3€ remboursés par Casio sur l'achat de ta calculatrice fx-92 Collège d'ici le 30 Septembre 2024
5€ de remise immédiate sur l'achat de ta calculatrice TI-83 Premium CE Edition Python chez les revendeurs partenaires
4€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced Edition Python chez les revendeurs partenaires
3€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced chez les revendeurs partenaires
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234567891011121314
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1325 utilisateurs:
>1309 invités
>11 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)