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]