• Иллюстрированный самоучитель по Mathematica 3/4

    Образцы и их применение

    Образцы (patterns) в системе Mathematica служат для задания выражений различных классов и придания переменным особых свойств, необходимых для создания специальных программных конструкций, таких как функции пользователя и процедуры. Это необычайно гибкое и мощное средство обобщенного представления математических выражений, используемое при любом подходе к программированию.

    Признаком образца являются знаки подчеркивания "_" (от одного до трех). Они обычно выглядят слитно, так что надо внимательно следить за общей длиной символов образцов. Наиболее распространенное применение образцов – указание на локальный характер переменных при задании функций пользователя. Например, функция:

    fsc[x_, y_] := x * Sin[y] + y * Cos[x] + z

    В списке параметров содержит два образца, х_ и у_. В правой части этого выражения переменные х и у, связанные с образцами х_ и у_, становятся локальными переменными, тогда как переменная z будет глобальной переменной. Обратите особое внимание на то, что символы образцов используются только в списках параметров – в правой части выражений они уже не применяются.

    Образцами можно задавать некоторые общие свойства функций. Например, запись:

    f[x_, x_] := p[x]

    Означает, что функция f двух идентичных аргументов становится тождественной функции р [ х ]. Следовательно, вызов функции:

    f[a, a] + f[a, b]

    Даст выход в виде:

    f[a, b] + p[a]

    А при вызове:

    f[a ^ 2 - 1, a ^ 2 - 1]

    Будет получен результат:

    p[-1 + a ^ 2]

    Примеры применения образцов для задания функции вычисления факториала приводились выше. В образце можно указывать его тип данных:

    • x_Integer – образец целочисленный;
    • x_Real – образец с действительным значением;
    • x_Complex – образец с комплексным значением;
    • x_h – образец с заголовком h (от слова head – голова).

    Задание типов данных с помощью образцов делает программы более строгими и наглядными и позволяет избежать ошибок, связанных с несоответствием типов.

    В системе Mathematica используются следующие типы образцов.

    Обозначение Назначение образца
      Любое выражение
    x_ Любое выражение, представленное именем х
    :: pattern Образец, представленный именем х
    pattern? test Возвращает True, когда test применен к значению образца
    _h Любое выражение с заголовком h
    x_h Любое выражение с заголовком h, представленное именем х
      Любая последовательность с одним и более выражений
      Любая последовательность с нулем или более выражений
    :x_< ИЛИ х__ Последовательности выражений, представленные именем х
    _h или h__ Последовательности выражений, каждое с заголовком h
    x _ h или х__h Последовательности выражений с заголовком h, представленные именем х
    x_:v Выражение с определенным значением v
    x_h:v Выражение с заголовком h и определенным значением v
    x_. Выражение с глобально заданным значением по умолчанию
    Optional [x h] Выражение с заголовком h и с глобально заданным значением по умолчанию
    Pattern.. Образец, повторяемый один или более раз
    Pattern… Образец, повторяемый ноль или более раз

    Еще раз отметим, что символ "_" в образцах может иметь одинарную, двойную или тройную длину. Надо следить за правильностью его применения, поскольку эти варианты различаются по смыслу. Образцы широко применяются при задании функций пользователя и в пакетах расширения системы.

    Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.