Hallo Ludger,
- das Umschranken von Anweisungsblöcken (bspw. wenn diese bedingt ausgeführt werden) ist ohnehin erforderlich, das Blockende muss ja erkannt werden
Jepp, aber dies geschieht ja nicht notwendigerweise durch ein "end" bzw. ein "}".
Klar, manche könnten jetzt meinen, dass der Zeilenvorschub/Wagenrücklauf ja die Eindeutigkeit besorgen könnte
Nicht nur der Zeilenvorschub sondern auch die Einrückung.
Genau das ist meine Argumentation. Seit mindestens zwei Jahrzehnten hat sich auch in allen von Algol abstammenden Freiformsprachen der Stil rausgebildet, begrenzte Blöcke je eine Stufe einzurücken und meistens jede Anweisung/Ausdruck auf eine Zeile zu setzen. So ziemlich jeder Programmierer macht das in 95 % der Fälle; es ist sozusagen also ein kulturelles Erbe. Python kodifiziert nun diesen Stil und nutzt diesen zum Erkennen der Eindeutigkeit eines Blocks, ohne das sonstige Begrenzer (ausser den Keywords) notwendig sind.
(meinen Kommentar dazu kennst Du).
Nicht wirklich. Ich hab BASIC immer links liegen lassen (andere Generation), insofern kann ich Deine Andeutungen nicht nachvollziehen.
Andere könnten meinen, dass der Funktion mit ihrem unumschrankten Anweisungsblock ja immer eine weitere Funktion folgt (bzw. gar nichts mehr - das scheint mir Deine Python-Argu zu sein).
Nein, ist sie nicht. Bei Python wird das Ende der Funktion dadurch festgestellt, dass der Inhalt der nächsten Zeile eine Stufe weniger eingerückt ist, als der Inhalt der Funktion/des Konditionals/der Schleife/der Klasse. Durch Einrückung kann man ja wunderbar einen Baum aufbauen.
Tim