ВУЗ:
Составители:
в списке:
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