* Данный текст распознан в автоматическом режиме, поэтому может содержать ошибки
1070
Программирование в системах компьютерной алгебры
f[n_]:=Product[i,{i,n}] f[n_]:=Module[{t=1}, Do[t=t*i,{i,n}];t] f[n_]:=Module[{t=1},For[i=1,i<=n,i++,t*=i];t] f[n_]:=Fold[Times, 1,Range[n]]
Все их можно проверить по примеру:
{f[0],f[1],f[5],f[10]} {1,1,120,3628800}
С образцом можно указывать его тип данных: • x_Integer – образец целочисленный; • x_Real – образец с действительным значением; • x_Complex – образец с комплексным значением; • x_h – образец с заголовком h (от слова head – голова). Задание с помощью образцов типов данных делает программы более строгими и наглядными и позволяет избежать ошибок, связанных с несоответствием типов данных. Следующие типы образцов используются в система Mathematica:
Обозначение _ x_ x:pattern pattern ? test _h x_h __ ___ x__ или x___ __h или h___ x__h или x___h x_:v x_h:v x_. Optional[x_h] Optional[x_h] pattern.. pattern... Назначение образца Любое выражение Любое выражение, представленное именем x Образец, представленный именем x Возвращает True, когда test применен к значению образца Любое выражение с заголовком h Любое выражение с заголовком h, представленное именем h Любая последовательность с одним и более выражениями Любая последовательность с нулем или более выражений Последовательности выражений, представленные именем x Последовательности выражений, каждое с заголовком h Последовательности выражений с заголовком h, представленные именем x Выражение с определенным значением v Выражение с заголовком h и определенным значением v Выражение с глобально заданным определенным значением v Выражение с заголовком h и с глобально заданным значением Образец, повторяемый один или более раз Образец, повторяемый нуль или более раз
Еще раз отметим, что символ _ в образцах может иметь одинарную, двойную или тройную длину. Надо следить за правильностью его применения, поскольку эти применения различаются по смыслу. Образцы широко применяются при за дании функций пользователя и в пакетах расширения системы.