620
FOR k FROM 1 TO n DO
ROLLDIE(sides)+ROLLDIE(sides)
u L2(roll);
END;
END;
En omettant la commande EXPORT alors qu'une fonction
est déclarée, sa visibilité peut être restreinte au programme
dans lequel elle est définie. Par exemple, vous pouvez
définir la fonction ROLLDIE à l'intérieur du programme
ROLLMANY comme suit :
ROLLDIE();
EXPORT ROLLMANY(n,sides)
BEGIN
LOCAL k,roll;
// Initialiser la liste de fréquences
MAKELIST(0,X,1,2*sides,1)
FOR k FROM 1 TO n DO
ROLLDIE(sides)+ROLLDIE(sides)
END;
END;
ROLLDIE(n)
BEGIN
RETURN 1+FLOOR(RANDOM(N));
END;
Dans ce cas de figure, partez du principe qu'aucune
fonction ROLLDIE n'est exportée à partir d'un autre
programme. Au lieu de cela, ROLLDIE est uniquement
visible par ROLLMANY. La fonction ROLLDIE doit être
déclarée avant d'être invoquée. La première ligne du
programme ci-dessus contient la déclaration de la fonction
ROLLDIE. La définition de la fonction ROLLDIE est située
à la fin du programme.
Enfin, la liste des résultats peut être renvoyée comme
résultat de l'invocation de ROLLMANY, au lieu d'être
directement mémorisée dans la variable de liste
globale L2. A ce titre, l'utilisateur pourrait facilement
mémoriser les résultats ailleurs.
EXPORT ROLLMANY(n,sides)
u L2(roll);
roll;
L2;
roll;
Programmation