Eine reine Funktion ist eine Funktion, die bei gleichen Argumenten immer dasselbe bewertet und sich nicht ändern oder von einem externen Zustand abhängen kann.
Nehmen wir an, es fn(x)handelt sich um eine reine Funktion, die etwas Teuereres bewirkt, beispielsweise die Rückgabe einer Liste der Primfaktoren von x. Nehmen wir an, wir erstellen eine auswendig gelernte Version derselben Funktion namens memoizedFn(x). Es gibt immer das gleiche Ergebnis für eine bestimmte Eingabe zurück, verwaltet jedoch einen …
Angenommen, wir haben eine normale reine Funktion wie z function add(a, b) { return a + b } Und dann ändern wir es so, dass es eine Nebenwirkung hat function add(a, b) { writeToDatabase(Math.random()) return a + b; } Soweit ich weiß, wird es nicht als reine Funktion angesehen, weil …
Die folgenden Codebeispiele bieten Kontext zu meiner Frage. Die Raumklasse wird mit einem Delegaten initialisiert. In der ersten Implementierung der Room-Klasse gibt es keine Schutzmaßnahmen gegen Delegierte, die Ausnahmen auslösen. Solche Ausnahmen sprudeln in die Eigenschaft North, in der der Delegat ausgewertet wird (Hinweis: Die Methode Main () zeigt, wie …
Ich hatte eine kleine Debatte mit einem Kollegen. Gibt es einen guten Grund, reine Funktionen zu verbergen / zu kapseln? Mit "rein" meine ich die Wikipedia-Definition : Gibt immer die gleichen Ergebnisse von der gleichen Eingabe zurück. (Aus Gründen dieser Diskussion Foo Create(){ return new Foo(); }wird es als unrein …
Ich lerne etwas über Codeverträge in .NET und versuche, die Idee reiner Konstruktoren zu verstehen. Der Code Verträge Dokumentation lautet: Alle Methoden, die in einem Vertrag aufgerufen werden, müssen rein sein. Das heißt, sie dürfen keinen bereits vorhandenen Status aktualisieren. Eine reine Methode darf Objekte ändern, die nach dem Eintritt …
Da die Reinheit eines Eingabeparameters bis zur Laufzeit unbekannt ist, wird eine Funktion sofort als unrein angesehen, wenn sie eine Funktion als Eingabeparameter verwendet? Verwandte: Wenn eine Funktion eine reine Funktion anwendet, die außerhalb der Funktion definiert, aber nicht als Parameter übergeben wird, ist sie dann immer noch rein, wenn …
"Die ideale Anzahl von Argumenten für eine Funktion ist Null" ist einfach falsch. Die ideale Anzahl von Argumenten entspricht genau der Anzahl, die erforderlich ist, damit Ihre Funktion nebenwirkungsfrei ist. Weniger als das und Sie verursachen unnötigerweise, dass Ihre Funktionen unrein sind, was Sie zwingt, sich von der Grube des …
Ich habe einmal gelesen, dass eine Methode entweder einen Rückgabewert haben sollte (und referenziell transparent sein sollte) oder Nebenwirkungen haben sollte, aber nicht beides. Ich kann keine Verweise auf diese Regel finden, möchte aber mehr darüber erfahren. Woher stammt dieser Rat? Aus welcher Person oder Gemeinschaft ist es entstanden? Zusätzliche …
Laut Wikipedia: In der Computerprogrammierung kann eine Funktion als rein beschrieben werden, wenn beide Aussagen über die Funktion gelten: Die Funktion wertet immer den gleichen Ergebniswert bei gleichen Argumentwerten aus. Der Funktionsergebniswert kann weder von versteckten Informationen oder Zuständen abhängen, die sich im Verlauf der Programmausführung oder zwischen verschiedenen Programmausführungen …
Ich lese und höre, dass die Leute (auch auf dieser Seite) routinemäßig das Paradigma der funktionalen Programmierung loben und betonen, wie gut es ist, alles unveränderlich zu haben. Insbesondere schlagen die Leute diesen Ansatz sogar in traditionell zwingenden OO-Sprachen wie C #, Java oder C ++ vor, nicht nur in …
Wenn meine Funktion die folgenden zwei Anforderungen erfüllt, kann die Funktion Sum , die die Summe der Elemente in einer Liste zurückgibt, in der das Element für eine bestimmte Bedingung als wahr ausgewertet wird, als reine Funktion bezeichnet werden, nicht wahr ? 1) Für einen gegebenen Satz von i / …
Ich habe die folgende Erweiterungsmethode: public static IEnumerable<T> Apply<T>( [NotNull] this IEnumerable<T> source, [NotNull] Action<T> action) where T : class { source.CheckArgumentNull("source"); action.CheckArgumentNull("action"); return source.ApplyIterator(action); } private static IEnumerable<T> ApplyIterator<T>(this IEnumerable<T> source, Action<T> action) where T : class { foreach (var item in source) { action(item); yield return item; } …
Um den Titel ein wenig zu erweitern, versuche ich zu einer Schlussfolgerung zu gelangen, ob es notwendig ist, reine Funktionen, von denen eine andere Funktion oder Klasse abhängt, explizit zu deklarieren (dh zu injizieren). Ist ein bestimmter Code weniger testbar oder schlechter konzipiert, wenn er reine Funktionen verwendet, ohne danach …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.