Выделения и подстановки в функциях
Выделения и подстановки в функциях
Функция Slot[n], или, в укороченной форме, #n, представляет n-й аргумент функции. Это иллюстрируют следующие примеры.
Ввод (In)
|
Вывод (Out)
|
(5* Slot [1] + Slot [2] *Slot[3]
A
2) &[a, b, с]
|
5a+bc
2
|
#1
A
#2 S[a, b] |
a
b
|
Объект # эквивалентен #1, a #0 — заголовку абстрактной функции. Таким образом, F[#.#2]&F[a,b] эквивалентно F[a,b].
Функция SlotSequence [n], или, в укороченной форме, ##n, где п = 1, 2, ..., представляет порядок применения формальных аргументов к абстрактной функции. Таким образом, объект ##n определяет последовательность аргументов, начиная с n-го.
Ввод (In)
|
Вывод (Out)
|
(Times[5, ##2] +Times[##2, ##3
A
2]) &[а, b, с]
|
Sbobc
3
|
Представленные средства обеспечивают работу с функциями на абстрактном уровне.
Интересные возможности связаны с использованием подстановок при определении функций. Система допускает использование подстановок в виде f [x] = value и f[x_] = value.
Поясним это несколькими примерами.
Ввод (In)
|
Вывод (Out)
|
f[x] =u
|
u
|
f[x] +f[y]
|
u+f ty]
|
f [x_] = х^2
|
x
2
|
f[x] +f[y]
|
u+y
2
|
Clear [f]
|
|
f[x]+f[y]
|
f [x] + f [y]
|
Как нетрудно заметить из этих примеров, подстановки в функциях могут существенно изменить исходную функциональную зависимость. А потому важной областью их применения является модификация функций.
Содержание раздела