fonction
Principe
Déclaration
Appel
error
Exemple
Paramètre passé par son adresse
Génération
fonction passée en paramètre
func
Voir aussi
Principe
La syntaxe des fonctions reprend celle du langage C,
voir functions.
Déclaration:
name(liste)
{
... code ...
}
liste = liste de paramètres formels (éventuellement vide)
Appel:
name(liste)
liste = liste de paramètres actuels (éventuellement vide)
error
func error
Retourne les noms des fonctions où une erreur s´est produite.
func error(0)
Réinitialise ces noms. doit être fait après chaque erreur
(sinon le message reset erreur apparait au bout de 100 erreurs et
func err(0 est automatiquement fait).
Exemple:
Soit la fonction:
a(x,y)
{
$"x=",x," y=",y;NL;
}
a(0,1.5): produit x=0 y=1.5
a(1,"ABCD"): produit x=1 y=ABCD.
a((1,2,3),"A"): produit x=1,2,3 y=A.
Remarques:
1) Lorsqu´un paramètre formel ne reçoit pas de valeur actuelle, il est
NIL par défaut.
2) Aucune déclaration de type n´est nécessaire.
3) Les paramètres sont passés par valeur, c´est à dire qu´une fonction
ne modifie pas les paramètres actuels.
Paramètre passé par son adresse
Lorsqu´un paramètre actuel (dans l´appel à une fonction)
est précédé de @, il peut être modifié par la fonction (passage par adresse),
le paramètre formel correspondant dans la fonction devra être déclaré address.
Exemple:
Soit la fonction:
f(p)
address p;
{
p++;
}
Affecter une valeur à v: v=1;
Appeler la fonction f() en passant l´adresse de v: f(@v);
$v;
Produit 2.000000 (v a été incrémenté)
Génération:
1) Les fonctions peuvent être écrites dans un fichier ASCII d´extension
.func sous n´importe quel éditeur et lues dans anyflo par:
read func et add func.
2) edit func est un éditeur interne à anyflo.
3) Des fonctions peuvent être générées dynamiquement par
generate func
4) L´appel à une fonction fff qui n´est pas en mémoire provoque,
dans le directory courant puis dans celui de l´environnement, la recherche du fichier fff.func
dont la première fonction est fff().
fonction passée en paramètre
Après une déclaration de fonction: func f déclare f comme nom de fonction
passée en paramètre.
Exemple:
Soit la fonction:
a(f,n)
func f
{
$f(n)
}
a("cos",3*PI/4): produit la valeur (-0.707107).
a("sin",3*PI/4): produit la valeur (0.707107).
Remarque:
Ces fonctions passées par nom peuvent aussi être des fonctions anyflo
créées par l´utilisateur. Voir un exemple dans le fichier
demo0_func.func avec la fonction fonction(a,b).
func
func
Retourne les noms de toutes les fonctions
func("f")
Retourne le texte de la fonction de nom f.
Exemples:
$func;
imprime les noms de toutes les fonctions
x=func "toto";
donne à x la valeur du texte de la fonction "toto"
func("f")compile
Imprime le pseudo code de la compilation de la fonction de nom f.
Voir aussi: