This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)

 Documentation /  Mathematica /  Das Mathematica Buch /  Die Prinzipien von Mathematica /  Textförmige Eingabe und Ausgabe /

Wandlung zwischen Zeichenketten, Boxen und AusdrückenOperatoren ohne eingebaute Bedeutungen

2.8.14 Die Syntax der Mathematica-Sprache

Mathematica verwendet diverse syntaktische Regeln zur Interpretation der Eingabe sowie zur Wandlung von Zeichenketten und Boxen in Ausdrücke. Die Gesamtheit der Regeln, die für StandardForm und InputForm verwendet wird, definiert die grundlegende Mathematica-Sprache. Die für andere Formen, wie zum Beispiel TraditionalForm, eingesetzten Regeln folgen denselben Grundprinzipien, unterscheiden sich jedoch in vielen Details.

Token-Typen der Mathematica-Sprache

Wenn Sie Text als Mathematica-Input eingeben, so wird Mathematica den Text zuerst in eine Folge von Token zerlegen, wobei jedes Token eine separate syntaktische Einheit repräsentiert.

Wenn Sie also zum Beispiel den Input xx+yy-zzzz eingeben, wird Mathematica diesen in die Token-Folge xx, +, yy, - und zzzz zerlegen. Hier sind xx, yy und zzzz Token, die Symbolen entsprechen, während + und - Operatoren sind.

Operatoren bestimmen letztlich die Struktur des Ausdrucks, der aus einem speziellen Input gebildet wurde. Die Mathematica-Sprache enthält mehrere allgemeine Operatorenklassen, die sich durch die unterschiedlichen Positionen unterscheiden, in denen sie relativ zu ihren Operanden erscheinen.

Beispiele für Operatorenklassen in der Mathematica-Sprache

In der Regel entnehmen Operatoren ihre Operanden aus definierten Positionen ihrer Umgebung. Wenn eine Zeichenkette mehr als einen Operator enthält, kann das Ergebnis im allgemeinen davon abhängen, welcher Operator als erster seine Operanden wählt.

So könnte a*b+c zum Beispiel entweder als (a*b)+c oder als a*(b+c) interpretiert werden, je nachdem, ob * oder + jeweils die Operanden zuerst wählt.

Zur Vermeidung derartiger Mehrdeutigkeiten weist Mathematica jedem Operator, der auftreten kann, eine Rangordnung (oder Vorrang-Wert) zu. Operatoren mit höherer Rangordnung können dann zuerst ihre Operanden wählen.

So hat zum Beispiel der Multiplikationsoperator * eine höhere Rangordnung als +; Er wird also seine Operanden zuerst wählen, und a*b+c wird als (a*b)+c und nicht als a*(b+c) interpretiert.

Der *-Operator hat eine höhere Rangordnung als +, deshalb ist Times in beiden Fällen die innerste Funktion.

In[1]:= {FullForm[a * b + c], FullForm[a + b * c]}

Out[1]=

Der //-Operator hat eine sehr geringe Rangordnung.

In[2]:= a * b + c // f

Out[2]=

Der @-Operator hat eine höhere Rangordnung.

In[3]:= f @ a * b + c

Out[3]=

Wie auch immer die Rangordnungen der von Ihnen verwendeten Operatoren sein mögen, durch Einfügen expliziter Klammern können Sie immer die Struktur des Ausdrucks spezifizieren, den Sie bilden wollen.

Durch Einfügen von Klammern wird Plus statt Times zur innersten Funktion.

In[4]:= FullForm[a * (b + c)]

Out[4]//FullForm=

Übersicht über einige Operatoren, in der Reihenfolge abnehmender Rangordnung

Die Tabelle im Abschnitt A.2.7 enthält die vollständige Anordnung (nach der Rangordnung) aller Operatoren in Mathematica. Die Reihenfolge wird, wie im Fall von * und +, zumeist direkt durch die normale mathematische Verwendung bestimmt. Aber im allgemeinen ist die Anordnung einfach so konstruiert, daß in typischen Input-Teilen möglichst selten explizite Klammern eingefügt werden müssen.

Die Operator-Rangordnung ist hier so, daß keine Klammern erforderlich sind.

In[5]:=

Out[5]=

FullForm zeigt die Struktur des Ausdrucks, der konstruiert wurde.

In[6]:= FullForm[%]

Out[6]//FullForm=

Beachten Sie, daß hier die erste und zweite Form identisch sind; die Dritte erfordert hingegen explizite Klammern.

In[7]:= {x -> #^2 &, (x -> #^2)&, x -> (#^2 &)}

Out[7]=

Arten der Gruppierung für Infix-Operatoren

Plus ist eine Flat-Funktion, deshalb ist hier keine Gruppierung erforderlich.

In[8]:= FullForm[a + b + c + d]

Out[8]//FullForm=

Power ist nicht Flat, deshalb müssen die Operanden in Paaren gruppiert werden.

In[9]:= FullForm[a ^ b ^ c ^ d]

Out[9]//FullForm=

Die Syntax der Mathematica-Sprache ist nicht nur für Zeichen definiert, die Sie auf einer typischen Tastatur eintippen können, sondern auch für alle Sonderzeichen, die Mathematica unterstützt.

Buchstaben, wie zum Beispiel , und aus irgendeinem Alphabet werden wie gewöhnliche englische Buchstaben behandelt und können daher zum Beispiel in den Namen von Symbolen erscheinen. Dasselbe gilt für buchstabenähnliche Formen wie zum Beispiel , und .

Aber viele andere Sonderzeichen werden als Operatoren behandelt. So sind zum Beispiel und Infix-Operatoren, während ein Präfix-Operator ist, und und sind klammernde Operatoren.

ist ein Infix-Operator.

In[10]:= a CirclePlus b CirclePlus c // FullForm

Out[10]//FullForm=

ist ein Infix-Operator, der dasselbe wie * bedeutet.

In[11]:= a × a × a × b × b × c

Out[11]=

Einige Sonderzeichen bilden Elemente recht komplizierter zusammengesetzter Operatoren. So enthält zum Beispiel f x den zusammengesetzten Operator mit den Elementen und .

Das und bilden Teile eines zusammengesetzten Operators.

In[12]:= Integral k[x] DifferentialDx // FullForm

Out[12]//FullForm=

Hier werden keine Klammern benötigt: die „innere Rangordnung" von ... ist geringer als Times.

In[13]:= Integral a[x] b[x] DifferentialDx + c[x]

Out[13]=

Hier werden jedoch Klammern benötigt.

In[14]:= Integral (a[x] + b[x]) DifferentialDx + c[x]

Out[14]=

Eingabe für Mathematica kann nicht nur in der Form eindimensionaler Zeichenketten erfolgen, sondern auch in Form zweidimensionaler Boxen. Die Syntax der Mathematica-Sprache gilt nicht nur für eindimensionale, sondern auch für zweidimensionale Konstrukte.

Diese Hochstellung wird als Potenz interpretiert.

In[15]:=

Out[15]=

ist ein zweidimensionaler zusammengesetzter Operator.

In[16]:=

Out[16]=

ist Teil eines komplizierteren zweidimensionalen zusammengesetzten Operators.

In[17]:=

Out[17]=

Der -Operator hat eine höhere Rangordnung als +.

In[18]:=

Out[18]=

Wandlung zwischen Zeichenketten, Boxen und AusdrückenOperatoren ohne eingebaute Bedeutungen