Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Variable Argumentlisten (varargs) #23

Open
NotLe0n opened this issue Aug 2, 2023 · 1 comment
Open

Variable Argumentlisten (varargs) #23

NotLe0n opened this issue Aug 2, 2023 · 1 comment
Labels
Vorschlag: Feature Neuer Feature
Milestone

Comments

@NotLe0n
Copy link
Member

NotLe0n commented Aug 2, 2023

Variable Argumentlisten ermöglicht es Funktionen beliebig viele Parameter eines bestimmten Typs zu haben. Dieses verhalten kann man mit Listen simulieren, jedoch würde der Aufruf solcher Funktionen seltsam Aussehen.

Der Syntax für eine Funktionsdeklaration mit einer variablen Anzahl an Argumenten sieht am Beispiel einer Summenfunktion so aus:

Die Funktion Summe, mit beliebig vielen Parametern x vom Typ Zahlen Liste, gibt eine Zahl zurück, macht:
    Die Zahl summe ist 0.
    Für jede Zahl z in x, mache:
        Erhöhe summe um z.
    Gib summe zurück.
Und kann so benutzt werden:
    "die Summe der Zahlen <x>"

Der Aufruf dieser Funktion ist wie folgt:

Die Zahl s ist die Summe der Zahlen (1, 2, 3, 4, 5).

Die variable Argumentliste muss immer das letzte Argument einer Funktion sein. Daraus folgt, dass eine Funktion auch nur eine variable Argumentliste besitzen kann.

Mehrdeutigkeiten wie vielleicht beim Alias "die Summe der Zahlen <x> und 7" müssen noch besprochen werden.

@NotLe0n NotLe0n added the Vorschlag: Feature Neuer Feature label Aug 2, 2023
@NotLe0n NotLe0n added this to the beta release milestone Nov 13, 2023
@NotLe0n
Copy link
Member Author

NotLe0n commented Jan 8, 2024

Eigentlich braucht man die Syntax "beliebig vielen" nicht, da es im Endeffekt nur eine Liste ist.
Was man braucht sind bessere Listen literale.

Die aktuelle Syntax ist:

  • eine[r] Liste, die aus x[, y, z,...] besteht
  • eine[r] leere[n] <Typname> Liste

Man könnte Listen literale in Mengenschreibweise schreiben. z.B.:

  • (1, 2, 3, 4, 5) oder
  • {1, 1, 2, 3, 5}

Leider natürlich nicht deutsch. Ob man sowas, wie bei Klammerung, als Ausnahme erlaubt ist Diskussionssache. Vielleicht wäre so eine Aufzählung in Worten verkleidet besser. Z.B.: die Liste {1, 3, 8, 9}.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Vorschlag: Feature Neuer Feature
Projects
None yet
Development

No branches or pull requests

1 participant