Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика.pdf
Скачиваний:
63
Добавлен:
19.05.2015
Размер:
642.13 Кб
Скачать

19

NestList[Sin[# + 1] &, x, 3]

Результатом будет:

{x, Sin[1 + x], Sin[1 + Sin[1 + x]], Sin[1 + Sin[1 + Sin[1 + x]]]}

Процедурное программирование

Mathematica также поддерживает процедурный стиль программирования:

For[i = 1; t = x, i^2 < 10, i++, t = t^2 + i;

Print[t]]

Здесь, точка с запятой отделяет различные последовательные команды. Для осуществления стандартных циклов есть функции Do, While, For. Условные выражения осуществляются посредством функций If, Which, Switch.

Таким образом, будучи изначально функциональным языком программирование Mathematica, тем не менее, имеет функции, которые позволяют писать код очень близкий к стандартным процедурным языкам программирования.

Программирование посредством задания правил

В системе Mathematica также можно задавать правила работы с теми или иными выражениями. Таким образом, можно определять объекты подобно тому как это обычно делается в математике, задавая их свойства посредством правил:

f[x_ + y_] := f[x] + f[y]; f[a + b + c]

Результат:

f[a] + f[b] + f[c]

Объектно-ориентированное программирование

Mathematica позволяет явно задавать определения, связанные с определенным объектом, реализуя, тем самым, возможность использования объектно-ориентированного стиля программирования:

h /: f[h[x_], x_] := hf[x]; h /: p_[h[x_]] := ph[f, x];

h /: h[x_] + h[y_] := hsum[x, y];

Вычисляя с данными определениями:

h[a] + h[b] + p[h[r]] + h[h[x]]

результатом будет:

hsum[a, b] + ph[f, r] + ph[f, x]