Re: [SSFR] Petite énigme ...

[ Thread Index | Date Index | More debianworld.org/shellscript-fr Archives ]


On Thu, Feb 28, 2008 at 10:57:25AM +0100, Tony Bassette wrote:
> 	Si la réponse au défi c'est " pas possible sans boucle " alors
> 	tant pis. Merde ça va me faire mal de dire que ZSH rulez ;).

Dans ce cas une question se leve, qu'est ce qu'une boucle ?
car le fait qu'une syntaxe builtin de zsh lui permette ca
ne change en rien au fait que c'est une boucle, si le defit
consiste simplement a ne pas utiliser un builtin de boucle alors:

frev () { ((${#1}==0)) && { echo "$2"; return; }; frev "${1:0:${#1}-1}" "${2}${1: -1:1}" ; }; frev "abc"; frev "une chaine plus longue"

le fait en bash quitte a exploser la ram vu que la stack n'y est pas
limitée ;) sans compter que c'est compatible ksh (enfin une
hypothetique implementation correcte de ksh), que ca ne demande aucune
connaissance specifique a un shell pour etre utilisé par quelqu'un
d'autre une fois defini, bref, que ce n'est pas moins "elegant" meme
si moins performant, tout au moins pour un shell basic (j'oserais
pas demander a un shell de savoir optimiser les tail-call recursions,
et/ou de faire de la compilation jit, lol).

une autre option est evidemment de fournir "frev" en module de bash
ce qui sera sans doute plus performant que zsh en ne venant pas pourrir
la syntaxe deja merdique des shell... mais bon... c'est plus long a
ecrire, autant forker, c'est moins con ;)

                                hope this help.





Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/