In zwei neuen Fragen ( 1 , 2 ), die vorherigen Poster versuchten, die Ausgabe-Reihenfolge von Plus
zu kontrollieren, was ein% ist co_de% -Funktion. Michael Pilat angegeben , dass intern Orderless
Funktionen Orderless
ihre Parameter, die die Schwierigkeit verursacht hat. Allerdings warnte er davor, Sort
non Plus
zu machen. Die Lösungen für die beiden vorherigen Fragen bestehen darin, eine Funktion zu erstellen, die wie Orderless
angezeigt wird, aber nicht Plus
selbst. Dies ist sicherlich effektiv, aber meine Frage ist, wie können wir die Standard Orderless
Reihenfolge ändern?
Ich muss ein wenig mehr Forschung betreiben, aber hier sind zwei Wege; Der Catch ist, dass Sie das Attribut Orderless
nicht verwenden. Simon sollte die Technik der Mustererkennung mit einer Bedingung aus seine Antwort auf Frage 1 , auf die Sie verwiesen haben.
Mit Order
, OrderedQ
und Sort
kommt man nirgendwohin, weil Orderless
functions mit Äquivalenz zu diesen Methoden sortiert, aber nicht sortiert mit ihnen.
Die erste Methode aus Simons Antwort ist die Verwendung eines Condition
:
Diese Definition von f [stuff__] wird ausgewertet, wenn die Reihenfolge der Argumente nicht die gewünschte Reihenfolge ist, und dann in diese Reihenfolge transformiert.
Eine andere Technik ist es, ein wenig low-level zu bekommen und $Pre
oder $PreRead
:
Es gibt einige Probleme mit beiden dieser Ansätze, wie sie zum Beispiel stehen, dass bestimmte $Pre
-Funktion nicht gut mit z. %Code%.
Also, damit ist jetzt etwas zu tun. Ich hoffe, dass ich updaten kann, nachdem ich ein bisschen mehr darüber geforscht habe.
Tags und Links wolfram-mathematica