Retour

famille.tex

Télécharger le fichier
Une famille d'objets est constitué par une table de ces objets. On
dispose de quelques primitives permettant de manier ces tables.
 
On connaît déjà la fonction $apply$ pour les tables de nombres. En
fait cette fonction s'applique pour toute table d'objets unaires (les
nombres, les tableaux, et donc les ellipses, les polygônes, etc\dots
). On dispose également d'analogues pour les points, cercles et droites~:
 
\syntaxe
\longref 
   {$[$ $a_0$ $\ldots $ $a_n$ $]$ $f$}
   {apply}
   {$[$ $b_0$ $\ldots $ $b_n$ $]$ ou $-$}
   {construit un nouveau tableau en répétant, pour $i$ variant de $0$ à
   $n$, l'opération suivante~: déposer l'élément $a_i$ puis exécuter
   $f$. Si à la fin de cette opération le tableau est vide, alors il
   est enlevé de la pile.}
 
\longref 
   {$[$ $A_0$ $\ldots $ $A_{n}$ $]$ $f$}
   {papply}
   {$[$ $b_0$ $\ldots $ $b_n$ $]$ ou $-$}
   {construit un nouveau tableau en répétant, pour $i$ variant de $0$ à
   $n$, l'opération suivante~: déposer le point $A_i$ puis exécuter
   $f$. Si à la fin de cette opération le tableau est vide, alors il
   est enlevé de la pile.}
 
\Exemple
|[0 0 1 1 2 2] {1} papply| $\longrightarrow$ |[0 0 1 1 1 1 2 2 1]| \hfill \break
|[0 0 1 1 2 2] {point} papply| $\longrightarrow$ |-| applique la
commande |point| aux points $(0, 0)$, $(1, 1)$ et $(2, 2)$
\finExemple
 
\longref 
   {$[$ $cerc_0$ $\ldots $ $cerc_{n}$ $]$ $f$}
   {capply}
   {$[$ $b_0$ $\ldots $ $b_n$ $]$ ou $-$}
   {construit un nouveau tableau en répétant, pour $i$ variant de $0$ à
   $n$, l'opération suivante~: déposer le cercle $C_i$ puis exécuter
   $f$. Si à la fin de cette opération le tableau est vide, alors il
   est enlevé de la pile.}
 
\longref 
   {$[$ $d_0$ $\ldots $ $d_{n}$ $]$ $f$}
   {dapply}
   {$[$ $b_0$ $\ldots $ $b_n$ $]$ ou $-$}
   {construit un nouveau tableau en répétant, pour $i$ variant de $0$ à
   $n$, l'opération suivante~: déposer la droite $d_i$ puis exécuter
   $f$. Si à la fin de cette opération le tableau est vide, alors il
   est enlevé de la pile.}
 
\longref 
   {$[$ $a_0$ $\ldots $ $a_n$ $]$ $f$ $n_0$ $n_1$}
   {Apply}
   {$[$ $b_0$ $\ldots $ $b_n$ $]$ ou $-$}
   {L'éxécutable $f$ prend $n_1$ arguments et on décale de $n_0$ à
   chaque itération. Ainsi le premier paramètre de la 2ème itération
   est $x_{n_0 + 1}$. Par exemple, les commandes |3 3 Apply| et
   |capply| sont équivalentes.} 
 
\endsyntaxe
 
\exemple {famille1}
\exemple {famille2}
\exemple {famille3}
%\exemple {vonkoch1}
%\exemple {vonkoch}