Удаление введенных в ходе сессии
определений
Мы уже не
раз отмечали возможность уничтожения введенных в ходе сессии определений. Приведем
в систематизированной форме функции, используемые для этого:
-
Clear [symbol1, symbol2,...]
— стирает значения и определения для указанных символов (идентификаторов);
-
Clear ["pattern1",
"pattern2",...] — стирает значения и определения для всех символов,
чьи имена подходят под любой из указанных строковых шаблонов;
-
ClearAll [symboll,
symbo!2,...] — стирает все значения, определения, атрибуты, сообщения и значения,
принятые по умолчанию, связанные с указанными символами;
-
ClearAll ["patternl",
"pattern2",...] — стирает все символы, чьи имена буквально подходят
к одному из указанных строковых образцов;
-
ClearAttributes [s,
attr] — удаляет attr из списка атрибутов символа
s.
Применение
большинства этих функций полезно разработчику серьезных приложений для систем
Mathematica, например новых пакетов расширений и применений системы. В то же
врем-я, для большинства пользователей вполне достаточно возможностей, предоставляемых
системой по умолчанию — средств диалога с ее оболочкой и функций Input и
Print.
Работа со строками
Хотя Mathematica
ориентирована на математические приложения, в ней достаточно полно представлены
функции для работы со строками (strings). Они могут потребоваться как для организации
вывода текстовых сообщений (например надписей на графиках), так и для организации
текстового диалога при разработке пакетов расширений и приложений системы. К
тому же надо постоянно помнить, что Mathematica — система символьной
математики,
так что символьным преобразованиям, как сугубо математическим, так и общепринятым,
в ней, естественно, уделено много внимания.
Многие функции
для работы со строками выполняют общепринятые преобразования, имеющиеся в большинстве
языков программирования высокого уровня. Строкой
является произвольная
цепочка символов, заключенная в кавычки, например "String". Ниже представлены
некоторые функции для работы со строками:
-
StringByteCount ["string"]
— возвращает полное число байтов, используемых для хранения символов в строке
"string";
-
StringDrop ["string",
{m, n}] — возвращает строку "string", удалив в ней символы от m
до п;
-
StringJoin["sl",
"s2",...] или StringJoin [ { "s1", "s2",...}]-формирует
строку, содержащую конкатенацию (объединение) указанных строк "s1";
-
Stringlnsert ["string1",
"string2",M] — вставляет строку "string2" в строку "string1",
начиная с позиции М от начала этой строки (при отри-, цательном М позиция
отсчитывается от конца указанной строки);
-
StringLength ["string"
] — возвращает число символов в строке;
-
StringReplace["string",
"s1 -> "spl"] или StringReplace["string", {"s1"
-> "spl", "s2" -> "sp2",...}] — замещает
"s1" на "spi" всякий раз, когда они появляются как подстроки
"string";
-
StringReverse ["string"]
— меняет порядок символов в строке "string" на противоположный;
-
StringPosition["string",
"sub"] — возвращает список с позициями строки "sub" в
строке "string" (дополнительные формы см. в справочной системе);
-
StringTake ["string",
n] — возвращает строку, состоящую из первых п символов строки "string";
-
StringTake ["string",
-n] — возвращает последние п символов из строки "string";
-
StringTake ["string",
{n}] — возвращает n-й символ в строке "string";
-
StringTake ["string",
{m, n}] — возвращает строку из символов, расположенных в позициях от m до
п строки "string".
Эти функции
хорошо известны программистам, работающим с современными языками программирования.
Большое число дополнительных функций для работы со строками можно найти в приложении.
Обилие таких функций в языке программирования системы Mathematica указывает
на его универсальный характер и обширные возможности в решении даже на первый
взгляд далеких от математики задач. Ниже приведены примеры действия ряда функций
работы со строками.
Ввод
(In)
|
Вывод
(Out)
|
StringByteCount
[ "Hello ! " ]
|
6
|
StringDrop
["Hello my friend!", 6]
|
my friend!
|
StringDrop
["Hello my friend! ", -10]
|
Hello
|
StringDrop
["Hello my friend! ", {7}]
|
Hello
у friend!
|
StringDrop
[ "Hello my friend ! " , { 6 , 8 } ]
|
Hello
friend!
|
Stringlnsert
["Hello friend!"," my", 6]
|
Hello
my friend!
|
StringJoin
["Hello"," my "]<>"friend!"
|
Hello
my friend!
|
StringLength
[ "Hello" ]
|
5
|
StringPosition[
"Hello my friend! ", "e"]
|
{{2, 2},
{13, 13}}
|
StringReplace["Hilo"
, "i"->"el"]
|
Hello
|
StringReverse
[ "Hello ! " ]
|
!olleH
|
StringTakef
"Hello my friend!", 6]
|
Hello
|
StringTake[
"Hello my friend!", -8]
|
friend!
|
StringTake
[ "Hello my friend ! " , { 7 , 9 } ]
|
my
|
Отметим еще
несколько функций, относящихся к работе с символами и строками:
-
FromCharacterCode [n] — возвращает строку, состоящую из одного символа с кодом
n;
-
FromCharacterCode
[ {n1, n2,...}] — возвращает строку, состоящую из последовательности символов
с кодами ni;
-
Characters ["string"]
— возвращает список целочисленных кодов, соответствующих символам строки "string";
-
ToLowerCase ["string"]
— производит строку, в которой все буквы преобразованы в нижний регистр;
-
ToString [expr] —
возвращает строку, соответствующую форме вывода выражения ехрг. Опции устанавливают
ширину линии, тип формата и т. д.;
-
ToUpperCase [ "string"
] — вырабатывает строку, в которой все буквы преобразованы в верхний регистр;
-
Unique [ ] — создает
новый символ с именем в форме $nnn (nnn — уникальный порядковый номер);
-
Unique [х] — создает
новый символ с именем в форме x$nnn (nnn — уникальный порядковый номер);
-
Unique [ {х, у,...}]—
создает список новых символов с уникальными именами;
-
Unique [ "ххх"
] — создает новый символ с именем в форме xxxnnn
(nnn — уникальный порядковый
номер);
-
Unique [name, {attrl,
attr2,...}] — создает символ с указанными атрибутами
attri;
-
UpperCaseQ [string]
— возвращает True, если все символы строки string являются прописными буквами
(верхнего регистра), иначе возвращает False.
Примеры,
приведенные ниже, показывают работу с этими функциями.
Ввод (In)
|
Вывод
(Out)
|
ToCharacterCode
[ "Hello ! " ]
|
{72,101,108,108,111,33}
|
FromCharacterCode
[ {72 , 101 , 108 , 108 , 111 , 33} ]
|
Hello!
|
ToExpression
[ "2+3*4 " ]
|
14
|
ToLowerCase
[ "HeLLo ! " ]
|
hello!
|
ToUpperCase
[ "Hello" ]
|
HELLO
|