Функция 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] |
Как нетрудно заметить из этих примеров, подстановки в функциях могут существенно изменить исходную функциональную зависимость. А потому важной областью их применения является модификация функций.