Commande Compactée

Compactée(<Expression>, <Var1>, <Liste1>, <Var2>, <Liste2>, …​)

Crée une liste d’objets obtenus par substitution des variables dans l’expression par les éléments des listes correspondantes.

Si le nombre de variables correspond au nombre de listes, chaque variable est extraite de la liste suivante. Si le nombre de variables dépasse le nombre de listes de 1, la dernière variable prend les valeurs de 1, 2, 3, …​, k où k est la longueur de la liste la plus courte (voir ex. 4). La longueur de la liste résultante est le minimum des longueurs des listes.

1) Soit les points P,Q,R,S,T. Compactée(MilieuCentre(A,B),A,{P,Q},B,{R,S,T}]

retourne une liste contenant les milieux des segments [PR] et [QS].

2) Soit une liste liste1 de points. Nettoyer(Compactée(Si(sqrt(x(A)²+y(A)²)<1,A),A,liste1))

retourne la liste des points situés dans le disque unité ouvert.

3) Soit une liste liste1={x^2, x^3, x^6} de polynômes. Compactée(Degré[a], a, liste1)

retourne la liste {2, 3, 6}.

4) Soit une liste liste1={1, 2, 5} de nombres. Compactée(Simplifier(a*x^(b-1)), a, liste1,b)

retourne la liste {1, 2x, 5x²}.

Dans chacune des listes, les éléments doivent être du même type.

Note Idée :

Il suffit de passer en argument une simple liste à la commande Compactée. Ceci permet une alternative plus concise à la commande Séquence quand le seul objectif est de parcourir la liste.

Compactée(a^2, a, ListeNombres) est équivalente en plus concise à Séquence(Elément(ListeNombres, a)^2, a, 1, Longueur(ListeNombres)) (mais dans ce cas il est encore plus simple d’écrire : ListeNombres^2.)

et comme pour l’exemple 4 Compactée((a, x(P)), P, ListePoints, a) est plus concise que`Compactée((a, x(P)), P, ListePoints, a, Séquence(Longueur(ListePoints)))`

Note Idée :

Sierpinski en un tweet par Zbynek Compactée(Polygone(v),v,Itération(Unir(Compactée(Compactée((t+p)/2,p,t),t,p)),p, {{{(0,0),(5;0°),(5;60°)}}},5))

Note Idée :

la variable n’est pas celle qu’on croit ;-) `Compactée(f(2), f, {x+1, x+3})`retourne la liste des images de la variable citée, ici 2, par les fonctions données dans la liste, donc {3,5}.

il me semble …​ qu’il est impossible d’utiliser correctement cette commande avec un outil ayant plusieurs objets finaux,

seul le premier de ces objets est retourné.

en attente d’être contredit.