func


fonction

Principe
Déclaration
Appel
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)

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:

add func
edit func
generate func
ini func
read func
rem func
write func