Diciamo che fn(x)è una funzione pura che fa qualcosa di costoso, come restituire un elenco dei fattori primi di x. E diciamo che creiamo una versione memorizzata della stessa funzione chiamata memoizedFn(x). Restituisce sempre lo stesso risultato per un determinato input, ma mantiene una cache privata dei risultati precedenti per …
Supponiamo che abbiamo una normale funzione pura come function add(a, b) { return a + b } E poi lo alteriamo in modo tale che abbia un effetto collaterale function add(a, b) { writeToDatabase(Math.random()) return a + b; } Per quanto ne so, non è considerata una funzione pura perché …
I seguenti esempi di codice forniscono un contesto alla mia domanda. La classe Room viene inizializzata con un delegato. Nella prima implementazione della classe Room, non ci sono guardie contro i delegati che generano eccezioni. Tali eccezioni saliranno alla proprietà North, in cui viene valutato il delegato (nota: il metodo …
Ho avuto un piccolo dibattito in corso con un collega. In poche parole, c'è una buona ragione per nascondere / incapsulare funzioni che sono pure? Per "puro" intendo la definizione di Wikipedia : Restituisce sempre gli stessi risultati dallo stesso input. (Per motivi di questa discussione Foo Create(){ return new …
Sto imparando i contratti di codice in .NET e sto cercando di capire l'idea di costruttori puri. La documentazione relativa ai contratti di codice afferma: Tutti i metodi chiamati all'interno di un contratto devono essere puri; cioè, non devono aggiornare alcuno stato preesistente. Un metodo puro è autorizzato a modificare …
Poiché la purezza di un parametro di input è sconosciuta fino al runtime, una funzione viene immediatamente considerata impura se accetta una funzione come parametro di input? Correlati: se una funzione applica una funzione pura che è definita al di fuori della funzione, ma non viene passata come parametro, è …
"Il numero ideale di argomenti per una funzione è zero" è chiaramente sbagliato. Il numero ideale di argomenti è esattamente il numero necessario per consentire alla funzione di essere libera da effetti collaterali. Meno di questo e causi inutilmente che le tue funzioni siano impure, costringendoti così ad allontanarti dalla …
Ho letto una volta che un metodo dovrebbe avere un valore di ritorno (ed essere referenzialmente trasparente), oppure avere effetti collaterali, ma non entrambi. Non riesco a trovare riferimenti a questa regola, ma voglio saperne di più. Qual è l'origine di questo consiglio? Da quale persona o comunità è nata? …
Secondo Wikipedia: Nella programmazione al computer, una funzione può essere descritta come pura se entrambe queste affermazioni sulla funzione sono valide: la funzione valuta sempre lo stesso valore di risultato dati gli stessi valori di argomento. Il valore del risultato della funzione non può dipendere da alcuna informazione o stato …
Sto leggendo e sentendo che le persone (anche su questo sito) lodano regolarmente il paradigma della programmazione funzionale, sottolineando quanto sia bello avere tutto immutabile. In particolare, le persone propongono questo approccio anche in linguaggi OO tradizionalmente imperativi, come C #, Java o C ++, non solo in linguaggi puramente …
Se la mia funzione soddisfa due requisiti al di sotto, credo che la funzione Sum restituisca la somma degli elementi in un elenco in cui l'articolo viene valutato come vero per una determinata condizione si qualifica come funzione pura, non è vero? 1) Per un dato set di i / …
Ho il seguente metodo di estensione: 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; …
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.