Hallo,
> Bekanntlich liegen zwischen Genie und Wahnsinn
> unendlich viele Schattierungen
es sind offenbar deutlich weniger, ausserdem ging es nicht um
Wahnsinnige sondern
um Idioten.
> wahrscheinlich kann ich dir
> deshalb nicht folgen warum man in einer Rule[] nur als Genie ein
Pattern[] verwenden sollte,
>ohne Pattern macht ein Rule[] doch nur in wenigen Fällen wirklichen
Nutzen.
Nun also, in der Ausgabe von Solve[],DSolve[], NSolve[], FindRoot[] ...
sind zwar
ganz viele Rule[] aber kein einziges Pattern[]. Was der Aussage:
"macht (sic!) ein Rule[] doch nur in wenigen Fällen wirklichen Nutzen"
wohl eher zu widersprechen scheint. Ungewoehnlich, ist im Lichte dieser
Behauptung, das so ziemlich jede Funktion, die Optionen hat, Rule[]
*ohne* Pattern[]
verwendet. Das sind 439 Funktionen, die, wie Du gerade fest stellts,
"in wenigen Fällen wirklichen Nutzen" haben. Komisch,warum machen die
soviel
Funktionen ohne "wirklichen Nutzen" da rein ??? *Das* sollte doch mal
diskutiert werden !
*Noch mal*: Wenn man nicht sehr genau weiss was man da macht,
sollte man Pattern[] in Ersetzungsregeln nur mit RuleDelayed[] verwenden
und nicht
mit Rule[].
Und, oh Wunder ! ersetzt man Rule[] mit RuleDelayed[] so gibt
x = z;
(*3*) {a, b} /. {x_, y_} :> {y, x}
(* 4 *) Block[{x, y}, {a, b} /. {x_, y_} :> {y, x}]
(* 5 *) Module[{x, y}, {a, b} /. {x_, y_} :> {y, x}]
(* 6 *) {a, b} /. Block[{x, y}, {x_, y_} :> {y, x}]
(*7*) {a, b} /. Module[{x, y}, {x_, y_} :> {y, x}]
in allen Fällen das von Dir erwartete Resultat {b,a}.
Wenn also die von Dir erwaehnten "*99.9%* der user selbiges Verhalten
wünschen"
warum machen Sie es dann nicht (?), sonder nehmen einfach die falsche
Funktion
und wundern sich dann. Schliesslich regen sich besagte ""*99.9%* der user"
auch nicht darueber auf, das man im Kuehlschrank keinen Schweinebraten
machen
und sich nicht mit den Turnschuhen die Haare trocknen kann.
Um da noch ein paar weitere Merkwuerdigkeiten zu nennen:
- If[] führt keine Schleifen aus (eindeutig das Verhalten das 98 % der
user wünschen)
- Integrate[] in einem Module[] berechnet keine Ableitungen (von 57 %
der user gewünscht)
- Solve[] macht keinen Zucker in den Kaffee (125 % der user wünschen
sich das)
und rührt um (immer noch beachtliche 82 % der user)
Gruss
Jens