Tim Tepaße: Codekonventionen für Funktions-klammern

Beitrag lesen

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

0 92

Codekonventionen für Funktions-klammern

Thomas Schenkeli
  • javascript
  1. 0
    Cybaer
    1. 0
      _roro
      1. 2
        Cybaer
        1. 0
          _roro
          1. 0
            Cheatah
          2. 0

            Emacs und Tabs

            hkl
            • programmiertechnik
            1. 0
              seth
              1. 0

                Tabbing

                hkl
  2. 1
    Der Martin
    1. 2
      Cheatah
      1. 0
        Der Martin
        1. 0
          Cheatah
          1. 0
            Der Martin
            1. 0
              Gunnar Bittersmann
            2. 0
              Cheatah
              1. 0
                Der Martin
            3. 0
              Cybaer
              1. 0
                Hamstar
                1. 1
                  Cybaer
                  1. 0
                    Hamstar
                    1. 0
                      Jörg Lorenz
                    2. 0
                      Cybaer
                      1. 0
                        Hamstar
                        1. 0
                          Cybaer
                          1. 0
                            Hamstar
          2. 0
            Thomas Schenkeli
        2. 0
          Genie
    2. 0
      Maxx
  3. 0
    Bio
    1. 0
      Hamstar
      1. 0
        Bio
        1. 0
          Hamstar
          1. 0
            Bio
            1. 0
              Hamstar
  4. 0
    Hamstar
    1. 0
      Hamstar
      1. 0
        Thomas Schenkeli
        1. 1
          Mathias Brodala
          1. 2

            ECMAScript, Function Declarations

            Tim Tepaße
          2. 0
            Thomas Schenkeli
            1. 0
              Tim Tepaße
        2. 0
          Hamstar
  5. 0
    Tim Tepaße
    1. 0
      Hamstar
      1. 0
        Tim Tepaße
        1. 0
          Hamstar
          1. 0
            Tim Tepaße
            1. 0
              Hamstar
              1. 0
                Hamstar
              2. 0
                Tim Tepaße
                1. 0
                  Hamstar
                  1. 0
                    Tim Tepaße
  6. 0
    Skeeve
    1. 0
      Hamstar
      1. 0
        Skeeve
        1. 0
          Hamstar
          1. 1
            Skeeve
            1. 0
              Hamstar
              1. 0
                Skeeve
                1. 0
                  Hamstar
                  1. 0
                    Skeeve
                    1. 0
                      Hamstar
          2. 0
            Benjamin Buxbaum
            1. 0
              Hamstar
              1. 0
                Benjamin Buxbaum
                1. 0
                  Hamstar
    2. 0
      .nils.
  7. 0
    Struppi
  8. 0
    Jörg Lorenz
    1. 0
      Der Martin
      1. 0
        Jörg Lorenz
        1. 0
          Der Martin
          1. 0
            Jörg Lorenz
            1. 0
              MudGuard
              1. 0
                Jörg Lorenz
                1. 0
                  MudGuard
    2. 0
      Skeeve
      1. 0
        Jörg Lorenz
  9. 0
    seth
  10. 0
    .nils.
  11. 0
    annA
    1. 0
      Hamstar
    2. 0

      hessisch

      seth
      • menschelei
      1. 0
        Struppi
        1. 0
          seth_not@home
          1. 0

            a hesssch Snippet

            hkl
            1. 0
              seth_not@home
              1. 0
                hkl
                1. 0

                  aebblwoi, aebbler, ...

                  seth
          2. 0
            Struppi
      2. 0
        Der Martin