Hallo & Frohe Ostern
statt also Eier zu suchen schreibtst Du seltsame Code, wieso nimmst Du nicht
dD[x_Symbol] := Or @@ (SameQ[x, #] & /@ {X1, X2, X3, X4})
was viel einfacher und logischer als
cD[x_Symbol] := Or @@ Thread[SameQ[Table[x, {4}], {X1, X2, X3, X4}]]
ist.
Weil nämlich SameQ[] nicht wartet bis es etwas tun kann wie Equal[] passiert
in Deinem seltsame Code das folgende, erst wird
Table[x, {4}] ausgewertet, das gibt bei cD[X1] {X1,X1,X1,X1}
dann steht da
{X1,X1,X1,X1}==={X1, X2, X3, X4}
und weil SameQ[] nicht wartet sondern gleich heraus findet das
beide Ausdrücken nicht das selbe sind, ist das False, da hilft auch kein
Thread[] mehr.
Gruss
Jens
Udo und Susanne Krause wrote:
Hallo allerseits,
In[76]:= cD[x_Symbol] :=
Or @@ Thread[SameQ[Table[x, {4}], {X1, X2, X3, X4}]]
In[90]:= cD[X1]
Out[90]= False
Erstaunlich.
In[89]:= Or @@ Thread[SameQ[Table[X2, {4}], {X1, X2, X3, X4}]]
Out[89]= False
Erstaunlicher.
In[88]:= SameQ[X2, X2]
Out[88]= True
Richtig, aber am erstaunlichsten, weil Mma 7.0.1 zuvor anders (i.e.
falsch) entschied.
In[93]:= Head[X2]
Out[93]= Symbol
Frohe Ostern
Udo.