Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Réflexion à propos de string map ?

0 views
Skip to first unread message

gerard sookahet

unread,
Dec 9, 2009, 3:34:47 PM12/9/09
to
Hello,

Je me faisait une réflexion à propos du résultat de la commande string map.

Imaginons que je veuille faire la transformation suivante:

T1: A -> ABC
T2: B -> CAB

sur la chaîne ABA.

Si je le fais à la main:

T1: ABCBABC
T2: ACABCCABACABC

Maintenant si je le fais avec string map:

% info patchlevel
8.5.2
% set x ABA
ABA
% set y {A ABC B CAB}
A ABC B CAB
% string map $y $x
ABCCABABC

la logique voudrait qu'il applique successivement T1 et ensuite T2 sur le résultat.
Mais apparemment, le choix qui a été fait pour le comportement de string map
est d'appliquer toutes les transformations en même temps (en parallèle ?).
Ce qui me semble un peu étrange ?

Bon, après si je veux appliquer des transformations successives je peux me
tourner vers regsub:

% foreach {v p} $y {regsub -all $v $x $p x}
% puts $x
% ACABCCABACABC

Mais cela aurait été plus élégant avec string map.


GS - qui réfléchit trop

Kroc

unread,
Dec 10, 2009, 3:08:44 AM12/10/09
to
On 9 déc, 21:34, gerard sookahet <gersoo@online_.fr> wrote:

> la logique voudrait qu'il applique successivement T1 et ensuite T2 sur le résultat.
> Mais apparemment, le choix qui a été fait pour le comportement de string map
> est d'appliquer toutes les transformations en même temps (en parallèle ?).
> Ce qui me semble un peu étrange ?

Toutes les transformations sont appliquées sur la chaîne originale ($x
dans ton cas) justement pour éviter les problèmes de double-
substitution. Pour ce que tu veux faire, tu dois imbriquer les string
map.

Moi ça me semble logique.

--
David Zolli

0 new messages