Главная  Длительная эволюция 

[0] [1] [2] [3] [ 4 ] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86]

1.2. Основы синтаксиса ,Математики" 15

Символы есть основные именованные объекты. Имя символа - это любая последовательность латинских строчных или прописных букв, цифр и знака $, не начинающаяся с цифры. Строчные и прописные буквы различаются. Например, х, аВ, u$v25 и т.д. есть символы.

Числа в „Математике" рассматриваются четырех типов: целые, рациональные, вещественные и комплексные. Все типы чисел могут содержать любое количество цифр. Чтобы число рассматривалось как вещественное, оно должно содержать точку в его записи, даже в случае, если имеет нулевую мантиссу. При вычислениях „Математика" сохраняет, если это возможно, тип чисел. Например, квадратный корень из 4, представленный выражением Sqrt[4], вычислится как 2, а квадратный корень из 2, т.е. Sqrt[2], после вычисления будет также записан в виде Sqrt[2]. Для того чтобы получить приближенное значение этого корня, следует вычислить квадратный корень Sqrt[2.] из вещественного числа 2, представленного как 2. или как 2.0 в его записи.

Строки - это заключенные в кавычки последовательности букв, цифр и специальных символов: „This is а string". Е1сли внутри строки используются кавычки, то их следует представить в виде последовательности \". Строки также могут содержать последовательности: \п - перехода на новую строчку, \t - табуляции и \п1П2Пз, где П1П2П3 - восьмеричный код ASCn.

Произвольные выражения „Математики" строятся, начиная С атомарных, и имеют вид: h[ei,e2,...,еп], где h называется заголовком выражения, а ei, ej, ... е„ - элементами, или непосредственными подвыражениями, или частями рассматриваемого выражения. И заголовок, и элементы также являются выражениями.

Если заголовок - символ, то возможны следующие основные интерпретации его смысла. Заголовок можно понимать как имя математической функции: Sin (синус), Бхр (экспоненциальная функция), как команду: Factor (разложить на



множители), Delete (удалить), как тип данных: Integer (целое), List (список). Мы привели в качестве примеров встроенные (системные) заголовки. Все такие заголовки начинаются с заглавной латинской буквы и являются полными именами на английском соответствующего объекта. Несмотря на то что заголовки совсем не обязательно интерпретируются как имена функций, мы далее будем называть их функциями, следуя традиции, установившейся в литературе по „Математике".

Сказанное выше относительно выражений „Математики" справедливо относительно внутренней, или полной формы выражений, т.е. той формы, которая воспринимается вычислительным ядром системы. Синтаксис выражений, впечатываемых с клавиатуры во входные ячейки, может отличаться от синтаксиса полной формы.

Рассмотрим следующие выражения:

Входной формат

Внутренняя (полная)

Выходной формат

выражения

форма выражения

выражения

x-f-a

Plus[a,x]

а-Нх

Times[ а,х]

Times[ а,х]

х" а

Power[x,a]

Plus[Times[-l,a],x]

-а-1-х

Times[Power[a,-l],x]

Мы видим, что существуют три формата выражений. Входной формат характеризуется тем, что выражение печатается в одну строку, и общеупотребительные математические операции могут быть записаны в специальной, инфиксной форме. Более того, в инфиксной форме могут быть записаны во входном формате любые функции „Математики" от двух аргументов: {а,Ь} ~ Delete ~ 1. Мы уже упоминали, что функции одного аргумента могут быть записаны и в постфиксной форме, т.е. после своего аргумента. Выходной формат максимально приближен к традиционному представлению математических выражений и может потребовать несколько строк для выво-



да выражения. Наконец, вторая колонка дает представление математических формул в виде выражений „Математики". В рассмотренных примерах вычисления свелись к сортировке, т.е. к упорядочиванию символов исходного выражения в соответствии с встроенным в „Математику" порядком.

Функция AtomQ, примененная к аргументу ехрг, т.е. выражение AtomQ[expr] при вычислении имеет результат True, если выражение егрг, будучи вычисленным, является атомарным, и False - в противном случае. Заголовок вычисленного выражения ехрг можно найти, вычисляя Head[eipr]. Например, Head[2] есть Integer, Head[b$x] есть Symbol, Head[„I read a book"] есть String. Наконец, элемент Ck можно получить с помощью функции Part путем вычисления выражения Part[ea;;3r,k], или, что то же самое, выражения expr[[fc]]. Если выражение атомарное, то из него нельзя извлечь никакой части.

О том, как вычисляются выражения, мы будем подробно говорить в гл. 8. Здесь лищь упомянем, что вычисления основываются на правилах преобразования выражений, правил как встроенных, или системных, так и определяемых пользователем. Выражение считается вычисленным, если оно не изменяется при применении к нему любого из подобных правил преобразований.

Проследить за ходом вычислений можно с помощью функции Trace или TracePrint.

In[lO].- Тгасе[2(3-2 +1)]

Ouf[10] = {{{32,9},9-l-l,l + 9,10},2 10,20}

Пример показывает, что „Математика" следует обычным правилам вычисления, которые применяются для того, чтобы вычислить арифметическое выражение. • Сначала вычисляется степень, потом круглая скобка, потом произведение. Функции Trace и TracePrint имеют вторые аргументы, которые



[0] [1] [2] [3] [ 4 ] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86]

0.001