Il s'agit de trouver une commande Tcl qui, répétée trois fois, se
renvoie elle-même.
...
Bon.
J'explique.
Ou plutôt, je donne un exemple :
puts [set set set]
->set
Pigé ?
Bon, j'en ai trouvé deux autres. Et vous ?
ulis le Técleux fou.
(Question subsidiaire : trouver un autre jeux Técleux)
Hello,
Je propose:
puts [join join join]
-> join
puts [append append append]
-> append
puts [lappend lappend lappend]
-> lappend
L'interpréteur Tcl doit se demander à quoi on joue ?
GS
Hm.. Tu as quelle version ?
Pour la version 8.4 (ActiveTcl 8.4.12), j'obtiens :
puts [join join join]
->join
puts [append append append]
->appendappend
puts [lappend lappend lappend]
->lappend lappend
> Bon, j'en ai trouvé deux autres. Et vous ?
J'en ai trouve 5 autres, mais j'avoue, j'ai triche ;-)
foreach c [info commands *] {
if {[catch {$c $c $c} r]} {
continue
}
if {[string compare $c $r]} {
continue
}
puts $c
}
lappend
join
append
format
set
Eric
-----
Eric Hassold
Evolane - http://www.evolane.com/
Tu n'aurais pas lance deux fois les commandes en question?
Si la variable append n'existe pas, et qu'on "append" a ce qui est donc
une chaine vide la chaine "append", on obtient bien "append", qui est en
outre stocke dans la variable nommee egalement append. Si tu relances la
meme commande, bien sur, cette fois ce sera appendappend, puis
appendappendappend la 3ieme fois, etc... Meme chose pour lappend, a
qqchose pres ("lappend lappend" au 2ieme appel, "lappend lappend
lappend" au 3ieme, etc...). Ca me semble vrai pour toutes les versions
de Tcl, depuis que append et lappend existent.
J'ai compris mon erreur.
Bon il semblerait qu'il y en a effectivement 5.
bin si :-[
> Bon il semblerait qu'il y en a effectivement 5.
Ca compte ça ?
package require msgcat
puts [msgcat::mcset msgcat::mcset msgcat::mcset]
-> msgcat::mcset
--
David Zolli - Kroc
Et hop, un autre :
puts [error error error]
-> error
Et de sept !