Naja, ich programmiere ja viel mit Perl und da ist die Klammer ein Zeichen einer Liste. Wie z.b. die Parameter eines Funktionsaufrufs. D.h. immer wenn ich eine Klammer sehe, weiß ich jetzt kommt eine Liste. return, typeof und Zuweisungen erwarten aber keine Listen.
das ist soweit nachvollziehbar - aber wie ist dann in Perl das Klammern von Teilausdrücken geregelt? Das ist doch dann nicht auch automatisch eine Liste mit nur einem Element?
Nee, Perl findet immer den Kontext. In dem Falle, wenn du einem Skalar eine Liste vorsetzt kriegt der Skalar das letzte Element.
[per lang=perl]
sub test
{
return (1,2,3,4,5);
}
my $x = test();
my @x = test();
[/code]
--> gibt im 1. Fall 5 im 2.Fall hast du ein Array.
Aber dieses Konzept ist wohl eher Perl spezifisch.
Denn in allen mir bekannten Programmiersprachen kann ich jederzeit, wenn ich das für angemessen halte, einen Teilausdruck in Klammern setzen. Und auch eine Konstante ist in diesem Sinn ein Teilausdruck. So würde der JS-Interpreter mein 'return (r);' also als return mit einem eingeklammerten Teilausdruck verstehen, was aber für die korrekte Funktion nicht relevant ist.
Das stimmt, aber eben deshalb finde ich diese Schreibweise verwirrend, ich mache die Klammer, dann wenn ich es für nötig halte, weil ich etwas erreichen will. D.h. sobal ich eine Klammer in einen Audruck sehe, will ich normalerweise damit eine bestimmte Reihenfolge erzwingen.
Zumal leider Proton keine Paare finden kann.
So ein Pech aber auch ... ;-)
Ab und an benutze ich auch ConText, aber irgendwie gefällt mir Proton besser, bis auf diese eine Sache.
Struppi.
Javascript ist toll (Perl auch!)