ВУЗ:
Составители:
в списке:
In : Cases[{
x
y
,
x
y
2
, x, x y}, Times[x, y
∧
n
_
]]
Out : {
x
y
,
x
y
2
}
Cases может также преобразовывать результат поиска в соответ-
ствии с заданным правилом подстановки:
In : Cases[{
x
y
,
x
y
2
, x, x y}, Times[x, y
∧
n
_
] → n]
Out : { −1, −2}
Здесь к каждому элементу списка из предыдущего примера была
применена подстановка Times[x, y
∧
n
_
] → n.
Рассмотрим еще один пример. Пусть имеется следующий список
{1, x, 2, x
2
, x
3
, y}, и требуется выбрать все элементы, содержащие x. Есте-
ственно воспользоваться функцией Cases:
In : Cases[{1, x, 2, x
2
, x
3
, y}, x
∧
n
_
]
Out : { x
2
, x
3
}
Как можно заметить, результат несколько отличается от ожида-
емого – выходной список не содержит x. Это произошло потому, что
выражение x не соотв етствует шаблону x
n
-
:
In :FullForm[x]
FullForm[x
2
]
Out :x
Power[x, 2]
Простейший способ решить задачу состоит в использовании шабло-
нов с альтернативой:
In : Cases[{1, x, 2, x
2
, x
3
}, x
∧
n
_
| x]
Out : {x, x
2
, x
3
}
Выражение x
_
|y
_
представляет собой шаблон с альтернативой.
При проверке шаблонов Mathematica выбирает выражения, соответству-
ющие либо шаб лону x
_
, либо y
_
.
25
в списке:
x x
In : Cases[{ , 2 , x, x y}, Times[x, y ∧n_]]
y y
x x
Out : { , 2 }
y y
Cases может также преобразовывать результат поиска в соответ-
ствии с заданным правилом подстановки:
x x
In : Cases[{ , 2 , x, x y}, Times[x, y ∧n_] → n]
y y
Out : {−1, −2}
Здесь к каждому элементу списка из предыдущего примера была
применена подстановка Times[x, y ∧n_] → n.
Рассмотрим еще один пример. Пусть имеется следующий список
{1, x, 2, x2, x3, y}, и требуется выбрать все элементы, содержащие x. Есте-
ственно воспользоваться функцией Cases:
In : Cases[{1, x, 2, x2, x3, y}, x∧n_]
Out : {x2, x3}
Как можно заметить, результат несколько отличается от ожида-
емого – выходной список не содержит x. Это произошло потому, что
выражение x не соответствует шаблону xn- :
In :FullForm[x]
FullForm[x2]
Out :x
Power[x, 2]
Простейший способ решить задачу состоит в использовании шабло-
нов с альтернативой:
In : Cases[{1, x, 2, x2, x3}, x∧n_ | x]
Out : {x, x2, x3}
Выражение x_|y _ представляет собой шаблон с альтернативой.
При проверке шаблонов Mathematica выбирает выражения, соответству-
ющие либо шаблону x_, либо y _.
25
