Hallo,
also
a) Klammern ! denn
Map[(k = #;
Print["Berechne hier etwas mit k = ", k];) &, {1, 2, 5}];
macht was es soll. Sonst wird
(k = #1; (Print["Berechne hier etwas mit k = ",
k]; ) & ) /@ {1, 2, 5};
geparsed. Woran man leich sieht, dass die k=#1 Anweisung nicht mehr in
der Funktionsdefinition steht.
b) man kann nat"urlich die Funktionen immer mit Function[] ausschreiben
also
Map[Function[{k},
Print["Berechne hier etwas mit k = ", k]], {1, 2, 5}];
c) Wenn man kein Ergebnis ben"otigt sollte man Scan[] statt Map[]
benutzen.
d) Anhang 13 des Mathematica Buches b.z.w der Online-Hilfe listet die
wichtigsten auf.
Allerdings steht die offenbar leicht ge"anderte Priorit"at von
CompoundExpression[] und Function[]
nicht mit drin.
Sch"ones Neues Jahr noch an alle Mathematica User &
Gruss
Jens
Manfred Nölte wrote:
>
> Hallo dmug,
>
> aus Gründen besserer Lesbarkeit habe ich bei
> Mathematica 3.0 in zahlreichen nb-Files
> von folgendem Trick gebrauch gemacht:
>
> Map[k=#;
> Print["Berechne hier etwas mit k = ", k];&,{1,2,5}];
>
> So konnte man anstelle der Print-Anweisung eine
> Berechnung mit "k" angeben und musste nicht das
> weniger lesbare "#" verwenden. Dies ist auch sehr
> nützlich bei mehreren Indizes:
>
> Map[{i,j}=#;
> Print["Berechne hier etwas mit {i,j} = ",{ i,j}];&,{{1,2},{4,5}}];
>
> Dieser Trick scheint bei Mathematica 4.0 nicht mehr
> zu funktionieren.
>
> 1. Gibt es in Mathematica 4.0 eine Möglichkeit "#"
> durch Variablennamen zu ersetzen?
> 2. Welche Inkompatibilitäten zwischen den Versionen
> 3.0 und 4.0 sind weiterhin bekannt?
>
> Ciao,
> Manfred
-------------------------------------------