Maxima Manual: Невычисляемые и вычисляемые формы

Next: Идентификаторы, Previous: Комплексные выражения, Up: Выражения [Contents][Index]

### 6.3 Невычисляемые и вычисляемые формы

Maxima различает операторы, которые являются невычисляемыми (nouns) и операторы, который являются вычисляемыми (verbs). Вычисляемым является оператор, который может быть выполнен. Невычисляемым является оператор, который встречается как символ в выражении, без вычисления. По умолчанию, имена функций является вычисляемыми. Вычисляемая форма может быть переведена в невычисляемую, экранированием (quoting) имени функции или применением функции `nounify`. Невычисляемая форма может быть переведена в вычисляемую, применением функции `verbify`. Флаг вычисления `nouns` вызывает функцию `ev` для вычисления невычисляемых форм в выражении.

Вычисляемая форма отличается первым знаком доллара `$` в соответствующем Lisp-символе. Невычисляемая форма, наоборот, отличается первым знаком процента `%` в соответствующем Lisp-символе. Некоторые невычисляемые формы, такие как `'integrate` и `'derivative` (возвращаемые `diff`), имеют специальные свойства вывода, но не всегда. По умолчанию, невычисляемые и вычисляемые формы функции идентичны при выводе. Глобальный флаг `noundisp` вызывает то, что Maxima выводит невычисляемые формы с предшествующей одиночной кавычкой `'`.

См. также `noun`, `nouns`, `nounify` и `verbify`.

Примеры:

    (%i1) foo (x) := x^2;
                                         2
    (%o1)                     foo(x) := x
    (%i2) foo (42);
    (%o2)                         1764
    (%i3) 'foo (42);
    (%o3)                        foo(42)
    (%i4) 'foo (42), nouns;
    (%o4)                         1764
    (%i5) declare (bar, noun);
    (%o5)                         done
    (%i6) bar (x) := x/17;
                                         x
    (%o6)                    ''bar(x) := --
                                         17
    (%i7) bar (52);
    (%o7)                        bar(52)
    (%i8) bar (52), nouns;
                                   52
    (%o8)                          --
                                   17
    (%i9) integrate (1/x, x, 1, 42);
    (%o9)                        log(42)
    (%i10) 'integrate (1/x, x, 1, 42);
                                 42
                                /
                                [   1
    (%o10)                      I   - dx
                                ]   x
                                /
                                 1
    (%i11) ev (%, nouns);
    (%o11)                       log(42)

Next: Идентификаторы, Previous: Комплексные выражения, Up: Выражения [Contents][Index]