* Данный текст распознан в автоматическом режиме, поэтому может содержать ошибки
Язык программирования систем Mathematica
1071
14.3.3. Функциональное программирование в среде Mathematica
Суть функционального программирования заключается в использовании в ходе решения задач только функций пользователя. При этом возможно неоднократное вложение функций друг в друга и последовательное применение функций раз личного вида. В ряде случаев, особенно в процессе символьных преобразований, происходит взаимная рекурсия множества функций, сопровождаемая почти не ограниченным углублением рекурсии и нарастанием сложности обрабатываемых системой выражений. В Mathematica функции пользователя задаются именем и списком парамет ров. Переменные в списке параметров задаются как образцы, например:
powerxn[x_,n_]:=x^n
Вычисление по заданной функции пользователя возможно как в численном, так и в символьном виде, например:
powerxn[2,3] 8 powerxn[a,b] ab
Заметим, что для уничтожения определения заданной функции можно ис пользовать команду – функцию
Clear[Name_function],
где Name_function – имя функции. Можно также задать функцию пользователя, содержащую несколько выраже ний, заключив их в круглые скобки:
f[x_]:=(t=(1+x)^2;t=Expand[t])
Переменные списка параметров, после имени которых стоит знак «_», являют ся локальными в теле функции или процедуры с параметрами. На их место под ставляется фактическое значение соответствующего параметра, например:
f[a+b] 1 + 2a + a2 + 2b + 2ab + b2 t 1 + 2a + a2 + 2b + 2ab + b2
Обратите внимание на то, что переменная t в функции f является глобальной. Это поясняет результат последней операции. Применение глобальных перемен ных в теле функции вполне возможно, но создает так называемый побочный эф фект – в данном случае меняет значение глобальной переменной t. Для устране