Maxima Manual: Введение в командную строку

Next: Функции и переменные для работы в командной строке, Previous: Командная строка, Up: Командная строка [Contents][Index]

### 4.1 Введение в командную строку

Оператор: '

  Оператор "одиночная кавычка" `'` предотвращает вычисление, иными словами "экранирует" свой аргумент.

  Примененный к символу, оператор "одиночная кавычка" предотвращает вычисление этого символа.

  Примененный к вызову функции, оператор "одиночная кавычка" предотвращает вычисление этой функции, но не вычисление ее аргументов (если оно не предотвращено по другим причинам). Результатом является невычисляемая (noun) форма вызова функции.

  Примененный к выражению в скобках, предотвращает вычисление всех функций и символов внутри скобок. Например, `'(f(x))` означает – не вычислять выражение `f(x)`, тогда как `'f(x)` (кавычка примененная к `f` а не к `f(x)`) означает – невычисляемая форма `f`, примененная к `[x]`.

  Одиночная кавычка не предотвращает упрощение.

  Когда глобальный флаг `noundisp` имеет значение `true`, невычисляемые формы функций выводятся с одиночной кавычкой. Этот переключатель всегда установлен равным `true` при печати определений функций.

  См. также оператор "кавычка-кавычка" `''` и `nouns`.

  Примеры:

  Примененный к символу, оператор "одиночная кавычка" предотвращает вычисление этого символа.

      (%i1) aa: 1024;
      (%o1)                         1024
      (%i2) aa^2;
      (%o2)                        1048576
      (%i3) 'aa^2;
                                       2
      (%o3)                          aa
      (%i4) ''%;
      (%o4)                        1048576

  Примененный к вызову функции, оператор "одиночная кавычка" предотвращает вычисление этой функции. Результатом является невычисляемая форма вызова функции.

      (%i1) x0: 5;
      (%o1)                           5
      (%i2) x1: 7;
      (%o2)                           7
      (%i3) integrate (x^2, x, x0, x1);
                                     218
      (%o3)                          ---
                                      3
      (%i4) 'integrate (x^2, x, x0, x1);
                                   7
                                  /
                                  [   2
      (%o4)                       I  x  dx
                                  ]
                                  /
                                   5
      (%i5) %, nouns;
                                     218
      (%o5)                          ---
                                      3

  Примененный к выражению в скобках, предотвращает вычисление всех функций и символов внутри скобок.

      (%i1) aa: 1024;
      (%o1)                         1024
      (%i2) bb: 19;
      (%o2)                          19
      (%i3) sqrt(aa) + bb;
      (%o3)                          51
      (%i4) '(sqrt(aa) + bb);
      (%o4)                     bb + sqrt(aa)
      (%i5) ''%;
      (%o5)                          51

  Одиночная кавычка не предотвращает упрощение.

      (%i1) sin (17 * %pi) + cos (17 * %pi);
      (%o1)                          - 1
      (%i2) '(sin (17 * %pi) + cos (17 * %pi));
      (%o2)                          - 1

Оператор: ''

  Оператор "кавычка-кавычка" `''` (две одиночные кавычки) изменяет вычисление вводимого выражения.

  Примененный к выражению общего вида expr, кавычка-кавычка вызывает подстановку значения expr вместо expr в вводимом выражении.

  Примененный к оператору в выражении, кавычка-кавычка изменяет невычисляемую форму оператора на вычисляемую (если она не является таковой).

  Оператор кавычка-кавычка применяется при синтаксическом анализе вводимого выражения и не сохраняется как часть этого выражения. Оператор кавычка-кавычка применяется сразу после распознавания и не может быть экранирован.

  Оператор кавычка-кавычка распознается функциями `batch` и `load`.

  См. также оператор "кавычка" `'` и `nouns`.

  Примеры:

  Примененный к выражению общего вида expr, кавычка-кавычка вызывает подстановку значения expr вместо expr в вводимом выражении.

      (%i1) expand ((a + b)^3);
                           3        2      2      3
      (%o1)               b  + 3 a b  + 3 a  b + a
      (%i2) [_, ''_];
                               3    3        2      2      3
      (%o2)     [expand((b + a) ), b  + 3 a b  + 3 a  b + a ]
      (%i3) [%i1, ''%i1];
                               3    3        2      2      3
      (%o3)     [expand((b + a) ), b  + 3 a b  + 3 a  b + a ]
      (%i4) [aa : cc, bb : dd, cc : 17, dd : 29];
      (%o4)                   [cc, dd, 17, 29]
      (%i5) foo_1 (x) := aa - bb * x;
      (%o5)                 foo_1(x) := aa - bb x
      (%i6) foo_1 (10);
      (%o6)                      cc - 10 dd
      (%i7) ''%;
      (%o7)                         - 273
      (%i8) ''(foo_1 (10));
      (%o8)                         - 273
      (%i9) foo_2 (x) := ''aa - ''bb * x;
      (%o9)                 foo_2(x) := cc - dd x
      (%i10) foo_2 (10);
      (%o10)                        - 273
      (%i11) [x0 : x1, x1 : x2, x2 : x3];
      (%o11)                    [x1, x2, x3]
      (%i12) x0;
      (%o12)                         x1
      (%i13) ''x0;
      (%o13)                         x2
      (%i14) '' ''x0;
      (%o14)                         x3

  Примененный к оператору в выражении, кавычка-кавычка изменяет невычисляемую форму оператора на вычисляемую (если она не является таковой).

      (%i1) sin (1);
      (%o1)                        sin(1)
      (%i2) ''sin (1);
      (%o2)                    0.8414709848079
      (%i3) declare (foo, noun);
      (%o3)                         done
      (%i4) foo (x) := x - 1729;
      (%o4)                 ''foo(x) := x - 1729
      (%i5) foo (100);
      (%o5)                       foo(100)
      (%i6) ''foo (100);
      (%o6)                        - 1629

  Оператор кавычка-кавычка применяется при синтаксическом анализе вводимого выражения и не сохраняется как часть этого выражения.

      (%i1) [aa : bb, cc : dd, bb : 1234, dd : 5678];
      (%o1)                 [bb, dd, 1234, 5678]
      (%i2) aa + cc;
      (%o2)                        dd + bb
      (%i3) display (_, op (_), args (_));
                                 _ = cc + aa

                               op(cc + aa) = +

                          args(cc + aa) = [cc, aa]

      (%o3)                         done
      (%i4) ''(aa + cc);
      (%o4)                         6912
      (%i5) display (_, op (_), args (_));
                                 _ = dd + bb

                               op(dd + bb) = +

                          args(dd + bb) = [dd, bb]

      (%o5)                         done

  Оператор кавычка-кавычка вызывает вычисление в случаях когда оно заблокировано, таких как определения функций, лямбда-выражения и выражения, экранированные оператором кавычка `'`.

      (%i1) foo_1a (x) := ''(integrate (log (x), x));
      (%o1)               foo_1a(x) := x log(x) - x
      (%i2) foo_1b (x) := integrate (log (x), x);
      (%o2)           foo_1b(x) := integrate(log(x), x)
      (%i3) dispfun (foo_1a, foo_1b);
      (%t3)               foo_1a(x) := x log(x) - x

      (%t4)           foo_1b(x) := integrate(log(x), x)

      (%o4)                      [%t3, %t4]
      (%i4) integrate (log (x), x);
      (%o4)                     x log(x) - x
      (%i5) foo_2a (x) := ''%;
      (%o5)               foo_2a(x) := x log(x) - x
      (%i6) foo_2b (x) := %;
      (%o6)                    foo_2b(x) := %
      (%i7) dispfun (foo_2a, foo_2b);
      (%t7)               foo_2a(x) := x log(x) - x

      (%t8)                    foo_2b(x) := %

      (%o8)                      [%t7, %t8]
      (%i8) F : lambda ([u], diff (sin (u), u));
      (%o8)             lambda([u], diff(sin(u), u))
      (%i9) G : lambda ([u], ''(diff (sin (u), u)));
      (%o9)                  lambda([u], cos(u))
      (%i10) '(sum (a[k], k, 1, 3) + sum (b[k], k, 1, 3));
      (%o10)         sum(b , k, 1, 3) + sum(a , k, 1, 3)
                          k                  k
      (%i11) '(''(sum (a[k], k, 1, 3)) + ''(sum (b[k], k, 1, 3)));
      (%o11)             b  + a  + b  + a  + b  + a
                          3    3    2    2    1    1

Next: Функции и переменные для работы в командной строке, Previous: Командная строка, Up: Командная строка [Contents][Index]