Вопрос: Какой язык программирования вы предпочитаете
|
Иллюстрированный самоучитель по Mathematica
Образцы и их применение
Образцы (patterns) в системе Mathematica служат для задания выражений различных
классов и придания переменным особых свойств, необходимых для создания специальных
программных конструкций, таких как функции пользователя и процедуры. Это необычайно
гибкое и мощное средство обобщенного представления математических выражений,
используемое при любом подходе к программированию.
Признаком
образца являются знаки подчеркивания «_» (от одного до трех). Они
обычно выглядят слитно, так что надо внимательно следить за общей длиной символов
образцов. Наиболее распространенное применение образцов — указание на локальный
характер переменных при задании функций пользователя. Например, функция
fsc[x_,y_]:=
х * Sin[y] + у * Cos[х] + z
в списке
параметров содержит два образца, х_ и у_. В правой части этого выражения переменные
х и у, связанные с образцами х_ и у_, становятся локальными
переменными,
тогда как переменная z будет глобальной переменной. Обратите особое внимание
на то, что символы образцов используются только в списках параметров — в правой
части выражений они уже не применяются.
Образцами
можно задавать некоторые общие свойства функций. Например, запись
f[х_,х_]
:= р[х]
означает,
что функция f двух идентичных аргументов становится тождественной функции р
[ х ]. Следовательно, вызов функции
f[a,a] + f[а,b]
даст выход
в виде
f[а,b] + р[а]
а при вызове
f[a^2- 1, a^2- 1]
будет получен
результат
р[-1 + а^2]
Примеры применения
образцов для задания функции вычисления факториала приводились выше. В образце
можно указывать его тип данных:
-
x_Integer — образец
целочисленный;
-
x_Real — образец с
действительным значением;
-
x_Complex — образец
с комплексным значением;
-
x_h — образец с заголовком
h (от слова head — голова).
Задание типов
данных с помощью образцов делает программы более строгими и наглядными и позволяет
избежать ошибок, связанных с несоответствием типов.
В системе
Mathematica используются следующие типы образцов.
|
|
|
|
|
Любое выражение,
представленное именем х
|
|
Образец, представленный
именем х
|
|
Возвращает
True,
когда test применен к значению образца
|
|
Любое выражение
с заголовком h
|
|
Любое выражение
с заголовком h, представленное именем х
|
|
Любая последовательность
с одним и более выражений
|
|
Любая последовательность
с нулем или более выражений
|
|
Последовательности
выражений, представленные именем х
|
|
Последовательности
выражений, каждое с заголовком h
|
|
Последовательности
выражений с заголовком h, представленные именем х
|
|
Выражение с
определенным значением v
|
|
Выражение с
заголовком h и определенным значением v
|
|
Выражение с
глобально заданным значением по умолчанию
|
|
Выражение с
заголовком h и с глобально заданным значением
|
|
|
|
Образец, повторяемый
один или более раз
|
|
Образец, повторяемый
ноль или более раз
|
Еще раз отметим,
что символ «_» в образцах может иметь одинарную, двойную или тройную
длину. Надо следить за правильностью его применения, поскольку эти варианты
различаются по смыслу. Образцы широко применяются при задании функций пользователя
и в пакетах расширения системы.
|
|
|