clear уничтожает переменные

## Синтаксис

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

## Аргументы

a, b, c...

  переменные любого типа и размера, но не защищённые.

## Описание

Эта команда уничтожает переменные, которые не защищены. Она удаляет перечисленные переменные из окружения. Само по себе, без аргументов, `clear` уничтожает все переменные за исключением переменных, защищённых с помощью `predef`. Таким образом, две команды `predef(0)` и `clear` уничтожают все переменные.

Обычно защищёнными переменными являются стандартные библиотеки и переменные с префиксом процента.

Обратите внимание на особый синтаксис `clear a b c` и `clear('a','b','c')`, а не `clear(a,b,c)`. Обратите также внимание на то, что `a=[]` не уничтожает `a`, а устанавливает `a` пустой матрицей.

Если имя Var не совпадает ни с одной из переменных, то `clear Var` тихо ничего не делает.

`clear()` может быть перегружена для любого типа `mlist("foo")`, с помощью определения макроса `%foo_clear()`. Он вызывается либо когда `clear` напрямую применяется к любому mlist-списку этого типа, либо неявно, когда любой mlist-список этого типа удалён при выходе из окружения, в котором он был определён.

## Примеры

    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 // будет напечатано "deleted"

## Смотрите также

- predef
- clearglobal
- funcprot
- who
- xmlDelete

## История

5.5.0 Теперь аргумент может быть матрицей строк
6.0.0 Теперь `clear` защищена: такие присвоения, как `clear=1`, более невозможны.
6.1.0 `clear` становится перегружаемой для любого `mlist("foo")` с помощью `%foo_clear()`.