3-12-1. Créer une macro récursive
3-12-2. Utiliser les macros récursives
3-12-3. Exemples d'utilisation de macros récursives
Il est possible de créer des macros spéciales appelées récursives qui sont remplies avec des modules seulement quand on demande un calcul.
3-12-1. Créer une macro récursive
Construisons la macro appelée Macro récursive à partir du programme suivant :
Cette macro a seulement une borne d'entrée et aucune image sur sa face avant. Elle contient à la fois des opérateurs de calcul et de visualisation.
Maintenant, faisons quelque chose qui est autorisé dans ce cas très particulier seulement : nous sélectionnons la boîte de Macro récursive, la glissons dans son propre intérieur et la relions:
Cette nouvelle boîte est vide, mais sera remplie par un contenu semblable dès que nous demanderons son calcul.
La contrainte que les macros récursives doivent avoir seulement une borne d'entrée peut être vaincue facilement, car cette borne d'entrée peut bien être lié à un faisceau (voir les Faisceaux).
3-12-2. Utiliser les macros récursives
Commençons avec ce graphe :
Cliquez à droite sur la boîte de Macro récursive pour lancer son calcul. La macro s'ouvre et le résultat est montré ci-dessous:
L'opération +1 a été effectuée et le nom de la macro à l'intérieur de la première a été changé. Maintenant, si nous calculons la Macro récursive,1 , la macro se remplit des modules et nous obtenons :
et ainsi de suite.
Seulement la mémoire limite le nombre de niveaux récursifs qui peuvent être calculés de cette manière. Si un niveau est fermé, les boîtes à l'intérieur sont supprimées (sauf si elles ont des images). Elles seront recréées quand un calcul sera redemandé.
Les macros récursives sont vidées quand le programme est enregistré. Cependant, si une macro récursive est déverrouilleé ou a été mise dans une image, elle n'est plus considérée comme récursive : elle sera enregistrée dans le graphe quand le programme est fermé.
3-12-3. Exemples d'utilisation des macros récursives
Le principe des macros récursives est utile pour créer des zooms graphiques personnalisés à une - ou deux - dimensions. Cela est montré dans l'exemple sur les macros récursives fourni avec le logiciel.