-
Notifications
You must be signed in to change notification settings - Fork 2
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
Makros #26
Labels
Vorschlag: Feature
Neuer Feature
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Sehr oft schreibt man in DDP ganze Funktionen nur um einen Alias für einen kurzen Ausdruck zu haben.
Beispiel: Duden/Mathe - Ist_Teilbar
Der Ausdruck ist ein one-liner, aber man muss eine ganze Funktionsdeklaration ausschreiben um den Alias benutzen zu können.
Dafür schlage ich Makros als neues Feature vor.
Ein Makro sähe so aus:
Hier wird der Ausdruck
dividend modulo divisor gleich 0 ist
dem Alias auf der linken Seite zugewiesen.Die Argumente können dabei aus dem Alias abgeleitet werden. Hier wären es
<dividend>
und<divisor>
.Ein Makro sollte sich wie ein Funktionsaufruf verhalten. Jedes Argument sollte also bloß einmal ausgewertet werden, auch wenn es mehrmals benutzt wird.
Im Gegensatz zu einer Funktion wäre ein Makro allerdings generisch. DDP hat keine Typ-Inferenz und somit ist es nicht möglich den Typ der Argumente bloß aus der Makrodeklaration abzuleiten.
Deshalb würde der Makro erst typechecked wenn er auch aufgerufen wird, und Typ-Fehler würden erst dann gemeldet werden (ähnlich wie bei C++ templates).
Makros würden Funktionen auch nicht nutzlos machen, da ein Makro nur für einen einzelnen Ausdruck stehen kann.
Man könnte noch überlegen ob man nur Ausdrücke oder auch Statements erlaubt.
The text was updated successfully, but these errors were encountered: