0-äre Funktionen im Kontext funktionaler Programmiersprachen



  • Hallo,

    Eine etwas peinliche Frage aber ich schreibe gerade einen Parser für eine eigene Programmiersprache und habe mich gefragt, ob ich Funktionen mit 0 Parametern zulassen solle oder nicht. Im Kontext imperativer Sprache ist es natürlich logisch, wieso so etwas Sinn macht. Ich frage mich jedoch, ob es tatsächlich auch Fälle gibt, wo in einer funktionalen Umgebung 0-stellige Funktionen erwünscht sind.

    MfG

    PS.: Meine Sprache erlaubt Überladungsauflösung aufgrund der Anzahl der Argumente, falls das eine Rolle spielt. (jedoch keine variadics und kein unpacking à la args... )



  • Naja, man könnte sich Funktionen vorstellen die Konstanten zurückgeben, oder macht das im Kontext deiner Sprache keinen Sinn?

    MfG SideWinder



  • @IlIIIllllIlIIlIIlI
    Gibt es in deiner Sprache etwas was man mit 0-ären Funktionen machen könnte, was mit Konstanten nicht ginge? Wenn ja, dann auf jeden Fall 0-äre Funktionen erlauben!
    Wenn nicht, dann kann man sie weglassen. Ob man sollte ist dann wieder ne andere Frage.



  • @SideWinder:
    Doch, das macht Sinn, aber mir fiele nicht ein, wieso man eine 0-äre Funktion eine Konstante zurückgeben lassen sollte, statt einfach direkt eine Konstante auszulesen.

    @hustbaer:
    Ich kann mir keinen Fall ausdenken, wo 0-äre Funktionen einen Vorteil gegenüber Konstanten brächten. Aber ich denke, ich kann sie vorerst dennoch zulassen, weil sie ja eigentlich nicht stören. Vielleicht übersehe ich einen offensichtlichen Use-Case ja auch ganz einfach, weil ich mich nicht mit funktionaler Programmierung auskenne.



  • In der funktionalen Programmierung entsprechen doch Konstanten 0-äre Funktionen, z.B.

    PI = 3.14
    
    Id x = x
    
    Sum a b = a + b
    

    (d.h. solange es keine globalen Variablen gibt)

    In imperativen Sprachen verwendet man ja meist Klammern für die Funktionsparameter, so daß es dort einen Unterschied zu Konstanten und Variablen gibt.


Anmelden zum Antworten