Иллюстрированный самоучитель по Mathematica 3/4

Удаление введенных в ходе сессии определений. Работа со строками.

Мы уже не раз отмечали возможность уничтожения введенных в ходе сессии определений. Приведем в систематизированной форме функции, используемые для этого:

  • Clear [symbol1, symbol2,…] – стирает значения и определения для указанных символов (идентификаторов);
  • Clear ["pattern1", "pattern2",…] – стирает значения и определения для всех символов, чьи имена подходят под любой из указанных строковых шаблонов;
  • ClearAll [symbol1, symbol2,…] – стирает все значения, определения, атрибуты, сообщения и значения, принятые по умолчанию, связанные с указанными символами;
  • ClearAll ["pattern1", "pattern2",…] – стирает все символы, чьи имена буквально подходят к одному из указанных строковых образцов;
  • ClearAttributes [s, attr] – удаляет attr из списка атрибутов символа s.

Применение большинства этих функций полезно разработчику серьезных приложений для систем Mathematica, например новых пакетов расширений и применений системы. В то же врем-я, для большинства пользователей вполне достаточно возможностей, предоставляемых системой по умолчанию – средств диалога с ее оболочкой и функций Input и Print.

Работа со строками

Хотя Mathematica ориентирована на математические приложения, в ней достаточно полно представлены функции для работы со строками (strings). Они могут потребоваться как для организации вывода текстовых сообщений (например надписей на графиках), так и для организации текстового диалога при разработке пакетов расширений и приложений системы. К тому же надо постоянно помнить, что Mathematica – система символьной математики, так что символьным преобразованиям, как сугубо математическим, так и общепринятым, в ней, естественно, уделено много внимания.

Многие функции для работы со строками выполняют общепринятые преобразования, имеющиеся в большинстве языков программирования высокого уровня. Строкой является произвольная цепочка символов, заключенная в кавычки, например "String". Ниже представлены некоторые функции для работы со строками:

  • StringByteCount ["string"] – возвращает полное число байтов, используемых для хранения символов в строке "string";
  • StringDrop ["string", {m, n}] – возвращает строку "string", удалив в ней символы от m до n;
  • 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
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.