Hallo,
On Tue, 2014-12-02 at 16:04 +0100, h.dolhaine@XXXXXXX.de wrote:
> das ist ja wirklich spannend.
> Wie könnte man denn so einen Listenkopf / Head machen?
Einfach das Beispiel von Robert nehmen und sich einen x-beliebigen
Ausdruck ausdenken. Bei Roberts Beispiel gab es eine Warnung, weil
Position versucht auf den 2. Teil des Symbols "List" zuzugreifen
List[{a,b},{a,c},{a,b}]
Also nehmen wir uns doch einfach einen Ausdruck, der einen 2. Teil
besitzt und wo durch Zufall auch noch ein "b" drinsteht: h[a, b]
Und jetzt nur noch ersetzen und Position liefert zum einen keinen Fehler
mehr und zum anderen findet es natürlich auch das vorkommende b im Kopf
Position[h[a, b][{a, b}, {a, c}, {a, b}], _?(#[[2]] == b &), {1}]
(* {{0}, {1}, {3}} *)
Viele Grüße
Patrick
> Kann man jede Expression zum Head machen? In der Hilfe steht z.B. ,
> dass f[x][y][z] einen komplizierten Head hat. Das ist aber auch das
> einzige Beispiel.
>
>
>
> Gruß Hans
>
>
>
>
>
>
> ______________________________________________________________________
> Von: owner-demug@XXXXXXX.ch [mailto:owner-demug@XXXXXXX.ch] Im
> Auftrag von Markus van Almsick
> Gesendet: Dienstag, 2. Dezember 2014 11:34
> An: Robert Nowak
> Cc: demug@XXXXXXX.ch
> Betreff: Re: Position[] PatternTest
>
>
>
>
> Hallo Robert,
>
>
>
>
> zur Frage: Warum schaut MMA in den Head wenn ich doch levelspec {1}
> angebe?
>
>
>
>
>
> Ein Listenkopf (Head) muss nicht einfach ein Symbol (List,
> f,Integrate, …) enthalten,
>
>
> sondern kann auch aus einer verschachtelten Listenstruktur bestehen.
> In diesem Fall würde
>
>
> die Level-Spezifikation auch beim Listenkopf Anwendung finden,
>
>
>
>
>
> Gruß, Markus
>
>
>
>
>
>
>
> Markus van Almsick, PhD
> Wolfram Research Consultant
>
> 100 Trade Center Drive
>
>
> Champaign, Illinois 61820, USA
>
> ph. +1 217 3980700 ext 5634 (USA)
> ph. +49 201 5207108 (Germany)
>
>
> email: markusa@XXXXXXX.com
>
>
>
>
> On 02 Dec 2014, at 8:26 , Robert Nowak <robert.nowak@XXXXXXX.at> wrote:
>
>
>
>
> Hallo, was geht hier schief, warum bekomme ich ein warning (MMA 7) ?
>
> In[23]:= Position[{{a,b},{a,c},{a,b}}, _?(#[[2]]==b&), {1}]
> During evaluation of In[23]:= Part::partd: Part specification
> List[[2]] is longer than depth of object. >>
> Out[23]= {{1},{3}}
>
> Ok, gerade gesehen das folgendes funktioniert:
> Position[{{a,b},{a,c},{a,b}}, _?(#[[2]]==b&), {1}, Heads -> False]
>
> Doch warum schaut MMA in den Head wenn ich doch levelspec {1} angebe?
>
> GrÃŒÃe Robert
>
>
>
>