clear Suppression de variables

## Séquence d'appel

                clear a b c
                clear('a', 'b', 'c')
                clear(['a' 'b' 'c'])

## Paramètres

a, b, c...

  variables de n'importe quel type et taille, non protégées

## Description

Cette commande supprime des variables non-protégées. Elle supprime de l'environnement les variables dont les noms sont spécifiés. Sans argument, `clear` supprime toutes les variables sauf celles qui ont été protégées par `predef`. La succession des commandes `predef(0)` et `clear` supprime toutes les variables.

Habituellement, les variables protégées sont les bibliothèques standard et les variables dont le nom commence par le caractère "%".

Notez la syntaxe particulière : `clear a` et non `clear(a)`. Notez aussi que `a=[]` ne supprime pas `a` mais affecte à `a` une matrice vide.

Si un nom Var ne correspond à aucune variable, `clear Var` sera simplement ignoré.

`clear` peut être surchargée pour toute `mlist("foo")`, en définissant la fonction `%foo_clear()`. Celle-ci sera appelée autant lors des appels explicites à `clear`, qu'en quittant l'environnement où la mlist a été définie.

## Exemples

    a = 2;
    b = 3;
    c = 4;
    clear a
    isdef("a") // F
    isdef("b") // T
    clear("b");
    isdef("b") // F

    a = 2;
    b = 3;
    c = 4;
    clear(['a' 'b' 'c'])
    isdef("a") | isdef("b") | isdef("c") // F

    function %foo_clear(o)
        disp("deleted");
    endfunction

    value = mlist("foo");
    clear value // will print "deleted"

## Voir aussi

- predef
- clearglobal
- funcprot
- who
- xmlDelete

## Historique

5.5.0 Peut prendre une matrice de chaînes de caractères en argument
6.0.0 `clear` est désormais protégé. Les affectations telles que `clear=1` ne sont plus possibles.
6.1.0 `clear` devient surchargeable pour toute `mlist("foo")`, avec `%foo_clear`.