Удаление введенных в ходе сессии определений
Удаление введенных в ходе сессии определений
Мы уже не раз отмечали возможность уничтожения введенных в ходе сессии определений. Приведем в систематизированной форме функции, используемые для этого:
- 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 |
Ввод (In) |
Вывод (Out) |
x:=ToString[2+3*4] |
|
X |
14 |
Unique [ ] |
$1 |
Unique [xyz] |
xyz$2 |
Unique [xyz] |
xyz$3 |
UpperCaseQ [ "Hello" ] |
False |
UpperCaseQ [ "HELLO" ] |
True |