DMUG-Archiv 2008

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: scoping Rule[]

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




Antworten:
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html