Wenn man in einer funktionalen Denkweise denkt, dass Funktionen rein sein sollen, kann man schlussfolgern, dass jede Funktion ohne Argumente im Grunde nur ein Wert ist.
Reallität kommt jedoch in den Weg, und mit verschiedenen Eingaben brauche ich vielleicht keine bestimmte Funktion, und wenn diese Funktion rechenintensiv ist, möchte ich sie nicht bewerten, wenn sie nicht benötigt wird.
Ich habe eine Problemumgehung gefunden, zu verwenden und es mit Func 1 oder was auch immer zu nennen, aber das fühlt sich dem Leser sehr nicht-idiomatisch und verwirrend an.F # - Funktion ohne Argumente?
Dies läuft auf eine Frage hinaus: Gibt es in F # eine geeignete Möglichkeit, eine Funktion mit null Argumenten zu deklarieren, ohne sie bei der Deklaration zu bewerten?
Man könnte auch die Haltung einnehmen, dass Werte "im Grunde funktionieren ohne Argumente" sind, weshalb Haskell die Dinge sieht. Ich frage mich, warum F # in dieser Hinsicht anders ist. – jpaugh
@self Es ist, weil Haskell standardmäßig auch faul ist; Keine Werte, einschließlich Funktionen, werden bei der Deklaration ausgewertet, es sei denn, der Programmierer fragt explizit danach. Die Semantik in F # ist standardmäßig strikt und sollte anders dargestellt werden. – jpaugh