DOSUBS
Syntaxe - {liste} n << procédure >> DOSUBS
avec n entier variant de 1 au nombre total d'éléments de {liste}
n est le nombre d'éléments de chaque groupe pouvant être constitué, en parcourant {liste} de gauche à droite,
en fonction du nombre total d'éléments de la liste.
Exemples avec
{liste} =
{1 2 3 4 5} et
<< procédure >> qui est de type
opérateur unaire.
Pour
n = 1, les groupes possibles sont
{1},
{2},
{3},
{4},
{5} ;
l'unique élément de chaque groupe sera affecté par
<< procédure >>.
Pour
n = 2, les groupes possibles sont
{1 2},
{2 3},
{3 4},
{4 5} ;
seuls les
2ièmes éléments de chaque groupe seront affectés par
<< procédure >>.
Pour
n = 3, les groupes possibles sont
{1 2 3},
{2 3 4},
{4 5 6} ;
seuls les
3ièmes éléments de chaque groupe seront affectés par
<< procédure >>.
Pour
n = 4, les groupes possibles sont
{1 2 3 4},
{2 3 4 5} ;
seuls les
4ièmes éléments de chaque groupe seront affectés par
<< procédure >>.
Pour
n = 5, l'unique groupe possible est
{1 2 3 4 5} ;
seul le
5ième élément sera affecté par
<< procédure >>.
Autres exemples avec
{liste} =
{1 2 3 4 5} et
<< procédure >> qui est de type
opérateur binaire.
Pour
n = 2, les groupes possibles sont
{1 2},
{2 3},
{3 4},
{4 5} ;
les 2 éléments de chaque groupe seront affectés par
<< procédure >>.
Pour
n = 3, les groupes possibles sont
{1 2 3},
{2 3 4},
{3 4 5} ;
les 2 derniers éléments de chaque groupe seront affectés par
<< procédure >>.
Pour
n = 4, les groupes possibles sont
{1 2 3 4},
{2 3 4 5} ;
les 2 derniers éléments de chaque groupe seront affectés par
<< procédure >>.
Etc.
Message d'erreur obtenu si
n est supérieur au nombre d'éléments de
{liste} :
Message d'erreur obtenu si
n est inférieur au nombre d'arguments nécessaires à
<< procédure >> :
Quelques exemples concrets…
Opérateur unaire et n = 1
Résultat : {1 4 9 16 25}
Opérateur unaire et n = 2
Résultat : {1 4 2 9 3 16 4 25}
Opérateur binaire et n = 2
Résultat : {3 5 7 9}
Opérateur binaire et n = 3
Résultat : {1 5 2 7 3 9}
Opérateur binaire et n = 5
Résultat : {1 2 3 9}
Fonction de type f(a) et n = 5
Résultat : {1 2 3 4 10}
Fonction de type f(a,b) et n = 5
Code : Tout sélectionner
<<
{ 1 2 3 4 5 }
5 @ n = 5
<< -> a b
<< a b + >>
>> DOSUBS
>>
Résultat : {1 2 3 4 9}
Fonction de type f(a,b) et n = 3
Code : Tout sélectionner
<<
{ 1 2 3 4 5 }
3 @ n = 3
<< -> a b
<< a b + >>
>> DOSUBS
>>
Résultat : {1 5 2 7 3 9}
Code : Tout sélectionner
<<
1 {8}
1 @ n = 1
<< + >>
>> DOSUBS @ dans ce cas, on aurait le même résultat avec DOLIST
>>
Résultat : 9
Code : Tout sélectionner
<<
1 {2 5}
1 @ n = 1
<< + >>
>> DOSUBS @ dans ce cas, on aurait le même résultat avec DOLIST
>>
Résultat : 8