Utilisation des fonctions
Précédent | Chapitre 5. Fondamentaux GEL | Suivant

## Utilisation des fonctions

Syntaxe :

    NomDeLaFonction(argument1, argument2, ...)

Exemple :

    Factorial(5)
    cos(2*pi)
    gcd(921,317)

Pour évaluer une fonction, saisissez le nom de la fonction, suivi par les arguments de la fonction (s'il y en a) entre parenthèses. Cela renvoie le résultat de l'application de la fonction avec ses arguments. Le nombre d'arguments de la fonction peut, bien sûr, être différent pour chaque fonction.

There are many built-in functions, such as `sin`, `cos` and `tan`. You can use the `help` built-in command to get a list of available functions, or see Chapitre 11, Liste des fonctions GEL for a full listing.

### Utilisation de la complétion à l'aide de la touche Tab

Vous pouvez utiliser la fonction de complétion à l'aide de la touche Tab pour que Genius complète les noms de fonction pour vous. Essayez de saisir les quelques premières lettres du nom et appuyez sur `Tab`.

### Noms de fonction sensibles à la casse

Les noms des fonctions sont sensibles à la casse. Cela signifie que les fonctions appelées `fairecela`, `FAIRECELA` et `Fairecela` sont toutes différentes.

### Définition de fonctions

Syntaxe :

    function <identifier>(<comma separated arguments>) = <function body>
    <identifier> = (`() = <function body>)

Le caractère accent grave ``` indique une fonction anonyme. En l'apposant à un nom de variable, en réalité vous définissez une fonction.

A function takes zero or more comma separated arguments, and returns the result of the function body. Defining your own functions is primarily a matter of convenience; one possible use is to have sets of functions defined in GEL files that Genius can load in order to make them available. Example:

    function addup(a,b,c) = a+b+c

then `addup(1,4,9)` yields 14

### Liste d'arguments variable

Si vous ajoutez `...` après le dernier nom d'argument dans la déclaration de fonction alors Genius permet la transmission d'un nombre quelconque d'arguments à la place de cet argument. Si aucun argument n'est transmis alors cet argument est défini à `null`. Sinon, c'est un vecteur ligne contenant tous les arguments. Par exemple,

    function f(a,b...) = b

alors `f(1,2,3)` donne `[2,3]` tandis que `f(1)` donne `null`.

### Une fonction comme argument d'une autre fonction

Dans Genius, il est possible de transmettre une fonction comme argument d'une autre fonction. Cela peut être fait en utilisant soit des « nœuds de fonction », soit des fonctions anonymes.

Si vous ne saisissez pas les parenthèses après un nom de fonction, la fonction est renvoyée sous la forme d'un « nœud de fonction », au lieu d'être évaluée. Le nœud de fonction peut ensuite être transmis à une autre fonction. Par exemple :

    function f(a,b) = a(b)+1;
    function b(x) = x*x;
    f(b,2)

To pass functions that are not defined, you can use an anonymous function (see la section intitulée « Définition de fonctions »). That is, you want to pass a function without giving it a name. Syntax:

    function(<comma separated arguments>) = <function body>
    `(<comma separated arguments>) = <function body>

Example:

    function f(a,b) = a(b)+1;
    f(`(x) = x*x,2)

This will return 5.

### Opérations sur les fonctions

Some functions allow arithmetic operations, and some single argument functions such as `exp` or `ln`, to operate on the function. For example,

    exp(sin*cos+4)

will return a function that takes `x` and returns `exp(sin(x)*cos(x)+4)`. It is functionally equivalent to typing

    `(x) = exp(sin(x)*cos(x)+4)

This operation can be useful when quickly defining functions. For example to create a function called `f` to perform the above operation, you can just type:

    f = exp(sin*cos+4)

It can also be used in plotting. For example, to plot sin squared you can enter:

    LinePlot(sin^2)

### Avertissement

Toutes les fonctions ne peuvent pas être utilisées de cette façon. Par exemple, lorsque vous utilisez une opération binaire, les fonctions doivent prendre le même nombre d'arguments.

Précédent | Niveau supérieur | Suivant
Utilisation des variables | Sommaire | Séparateur