Sie missverstanden Assoziativität. Ein Operator op
ist assoziativ, wenn (a op b) op c
äquivalent zu a op (b op c)
ist. Für Operatoren, die nicht assoziativ sind, wird es daher relevant, ob a op b op c
für die erstere oder die letztere steht. Wir unterscheiden also zwischen linksassoziativen Operatoren, wo es (a op b) op c
ist, und rechtsassoziativen Operatoren, wo es a op (b op c)
ist.
Die meisten Operatoren in den meisten Sprachen sind linksassoziativ. Nehmen Sie zum Beispiel -
: a - b - c
entspricht (a - b) - c
in den meisten Sprachen, nicht a - (b - c)
.
Der Zuweisungsoperator ist eine Ausnahme davon, da (a = b) = c
im Allgemeinen nicht legal ist (wie Sie dem Ergebnis einer Zuweisung nicht zuweisen können). Somit entspricht a = b = c
in den meisten Sprachen a = (b = c)
. Eine bemerkenswerte Ausnahme ist Python, wo a = b = c
überhaupt nicht assoziiert und ist einfach illegal.
Das hat nichts mit dem Unterschied zwischen a = b
und b = a
zu tun. Da dies nur eine einzige Verwendung des Operators =
erfordert, wird die Assoziativität nicht berücksichtigt. Vielmehr ist die relevante Eigenschaft : Ein Operator op
ist kommutativ, wenn a op b
äquivalent zu b op a
ist. Mir ist keine Sprache bekannt, in der der Einsatz kommutativ ist, und ich habe auch keine Vorstellung davon, wie es sein könnte.
Konzepte wie Links-Kommutativität oder Rechts-Kommutativität gibt es nicht. Soweit ich weiß, gibt es keine Bezeichnung für die Frage "Verteilt a = b
b
bis a
oder umgekehrt?" - Das ist nur ein Teil der Semantik des Zuweisungsoperators.
Ich denke, dass Ihre Frage irreführend ist. Sie fragen nach Zuordnung Assoziativität, aber vermarkten Sie Ihre Frage als Sprache Assoziativität, was auch immer das bedeutet (ich glaube, es bedeutet nichts.) –
@LittleAlien wie würden Sie die Frage klären? Von dem, was ich gesehen habe, sind alle Operatoren in jeder Sprache rechts assoziativ eingestellt. Ich dachte, es könnte eine Sprache geben, die geschrieben wurde, um assoziativ zu bleiben. –
Es ist nicht schwer herauszufinden, dass es Operationen gibt, die nicht richtig assoziativ sind. Sogar unter dem Link, den Sie gepostet haben, lesen wir über nicht assoziative Operatoren und sehen einen Link zur C-Sprachen-Op-Präzedenztabelle mit Assoziativität. Dort finden Sie links und rechts assoziative Operatoren. Sie werden keine "richtige assoziative Sprache" in Google finden. Sie haben [nur einen Operator ausgewählt und seine Assoziativität auf alle Operatoren erweitert] (http://www.youtube.com/watch?v=s7MTM4BKZ_E). Da es keine RA-Sprachen gibt, habe ich gedacht, dass Sie nach dem LA-Zuweisungs-Operator fragen. –