Moin!
Viel zu beobachten ist da nicht, da es ein totaler Spezialfall ist
(also LOCAL x bis zur Zuweisung eines Wertes; dort wird normalerweise
noch nicht einmal jeder EXISTS aufrufen...

)
- liefert in beiden Fällen natürlich "", was nicht zu unterscheiden ist.
EXISTS ist eigentlich nur etwas genauer (es gilt: NOT ISEMPTY
Schon klar, aber was ist der
beobachtbare Unterschied, abgesehen von EXISTS?
BEISPIEL-FRAGE:
FOR x IN [bar]
BEGIN
LOCAL y = [x] * [pi]
ADDLIST foo y
END
sollte ich dann besser
LOCAL foo = "" oder
LOCAL foo davor schreiben, wenn die Liste
foo lokal sein soll?
Soweit ich das jetzt verstehe, ist das doch vollkommen egal, oder?
PS: Oder habe ich dann das Problem mit der ein-elementigen Liste, welche die leere Liste enthaelt? Davon sprichst Du immer wieder, aber verstanden, bzw. ein Beispiel wo sich das auswirkt, habe ich (es) nicht.
Der Code ist eigentlich völlig okay; wenn Du foo aber nur in der ACTION
brachst, würde ich schon sagen, daß Du LOCAL foo vor die FOR-Schleife
packen solltest. Für den ADDLIST-Befehl ist das allerdings erstmal egal.
Zu dem Beispiel, wo sich das auswirkt...
LOCAL Liste
>> "[Liste]" [=LISTLENGTH [Liste]] [=LENGTH [Liste]]
ADDLIST Liste ""
>> "[Liste]" [=LISTLENGTH [Liste]] [=LENGTH [Liste]]
ADDLIST Liste ""
>> "[Liste]" [=LISTLENGTH [Liste]] [=LENGTH [Liste]]
Ausgabe in etwa:
"" 0 0
"" 1 0
" " 2 1
Du siehst also, daß sich das erste ADDLIST anders verhält
als das zweite, obwohl in beiden Fällen [Liste] == "" und
LENGTH [Liste] == 0, also ohne sichtbaren Unterschied, nur
die LISTLENGTH ist anders.
Dasselbe Beispiel mit "x":
LOCAL Liste
>> "[Liste]" [=LISTLENGTH [Liste]] [=LENGTH [Liste]]
ADDLIST Liste "x"
>> "[Liste]" [=LISTLENGTH [Liste]] [=LENGTH [Liste]]
ADDLIST Liste "x"
>> "[Liste]" [=LISTLENGTH [Liste]] [=LENGTH [Liste]]
Ausgabe in etwa:
"" 0 0
"x" 1 1
"x x" 2 3
Bei nichtleeren Elementen ist es einfach: Die LENGTH ist mit 0 bzw. >0 (1)
unterschiedlich und auch der Wert ist unterschiedlich ("" vs. "x").
Soweit verstanden? Der Fall hat bei mir damals einige Kopfschmerzen
verursacht, aber am Ende hatte ich eine konsistente Lösung. Lange
Zeit waren davor leere Einträge gar nicht möglich, was z.T. für
Verwirrung gesorgt hatte...

Grüße, SLC