Sostantivo corrispondente per "side-effect-free"?


10

Per funzioni o calcoli abbiamo termini come:

  • Deterministico - Determinismo
  • Puro - Purezza

Ora qual è il nome corretto corrispondente per privo di effetti collaterali ?

"Freeness effetto collaterale"? "Libertà di effetti collaterali"? "Non-side-efficace"?


4
Questo non dovrebbe riguardare la lingua inglese e l'uso ? ;) In ogni caso, potresti dare il tuo contesto d'uso? Concordo sul fatto che usare un nome proprio di questo tipo non sia corretto. (Sono un madrelingua tedesco, ma mi compiaccio, ma dobbiamo sforzarci di non tradurre letteralmente tali mostri. Sono quasi sempre cattivi anche in tedesco, se possibile.)
Raffaello

1
È privo di effetti collaterali diverso da puro?
Andrej Bauer,

@Raphael Ho anche pensato di porre la domanda lì, ma mentre sto chiedendo il nome corrispondente corretto in un contesto di programmazione, penso che l'informatica possa darmi risposte migliori.
Il

3
@AndrejBauer Penso che pure sia sia privo di effetti collaterali che deterministico, mentre privo di effetti collaterali può essere ancora non deterministico.
risolve il

@Raphael In realtà non esiste un contesto molto specifico. Attualmente sto pensando a come le funzioni deterministiche, prive di effetti collaterali e pure siano in relazione tra loro. E pensare a questi concetti senza avere un nome per ognuno di essi mi mette a disagio. : D
risale il

Risposte:


8

Una buona regola empirica per le domande grammaticali è che, se è così complicato che è necessario chiedere, è meglio riformulare la frase. Ad esempio, "La libertà degli effetti collaterali della funzione garantisce X" è scritta in modo più semplice ed elegante, "Poiché la funzione è priva di effetti collaterali, X è garantita" o addirittura ", La funzione non ha effetti collaterali, quindi X è garantito."

Detto questo, le parole chiave per gli articoli dovrebbero essere frasi di nomi in modo da poter usare la "libertà degli effetti collaterali".

(A proposito, "non-side-effect" è un aggettivo.)


(A proposito, "non-side-effect" è un aggettivo.) Buona cattura ... E grazie per la risposta. Ma sfortunatamente, non ho bisogno della parola solo per una frase.
risolve il

8

A seconda del contesto, "assenza di effetti collaterali" può essere un termine più leggibile.


7

La parola è nullipotence , la forma del nome di nullipotent . Dalla prima definizione su Wikizionario:

(matematica, informatica) Descrivere un'azione che non ha effetti collaterali . Le query sono in genere nullipotent: restituiscono dati utili, ma non modificano la struttura dei dati interrogata. Contrasto con idempotente.

(enfatizzare il mio)

http://en.wiktionary.org/wiki/nullipotent


Wow, non ho mai sentito parlare di questo termine prima. Non sembra essere comunemente usato (Google riporta 16'300 risultati per "nullipotent" e 1'580 risultati per "nullipotence" e il mio correttore ortografico del browser non ne conosce nessuno dei due). Ma potrei usarlo solo per il gusto di farlo! Grazie.
risolve il

3
Sono un esperto di dominio e non credo di aver mai visto quel termine usato. Non è una parolaccia, ma sicuramente deve essere definita prima dell'uso.
Gilles 'SO- smetti di essere malvagio' il

3
Questo mi ha aiutato a capire che esiste una differenza tra nullpotente nilpotent.
Val

1
@Val, sì, ho pensato che significassero la stessa cosa fino a quando non ho studiato l'algebra astratta. Se mi sentissi particolarmente crudele, lo spiegherei dicendo che qualcosa di nullo non influisce su nulla, mentre qualcosa di nullo non fa nulla. : P
Matthew Piziak,

3

Ho imparato questo concetto come trasparenza referenziale .

Tuttavia, c'è un dibattito sul fatto che questo sia effettivamente un termine significativo o no, quindi se lo userai in un documento, dovresti prima definirlo.


2
La trasparenza referenziale non è la stessa cosa dell'assenza di effetti collaterali. Puoi avere un linguaggio puramente funzionale in cui le macro determinano l'acquisizione indesiderata di nomi a destra e sinistra, distruggendo così la trasparenza referenziale.
Kaz,

@Kaz A proposito di referenziali, hai qualche riferimento per quella macrostoria?
risolve il

@rolve Potrei avere una visione troppo parrocchiale. Per un contrasto, vedi la definizione di trasparenza referenziale del progetto Tunes che ha una connessione con la libertà dagli effetti collaterali: tunes.org/wiki/referential_20transparency_20and_20state.html
Kaz

@rolve Stavo pensando alla trasparenza referenziale nel contesto della valutazione: le trasformazioni di codice possono spostare espressioni, ma i riferimenti in quelle espressioni funzionano correttamente, qualunque cosa accada. Ad esempio, i sistemi di igiene macro si dice che siano referenzialmente trasparenti. Non c'è nulla di "involontariamente opaco" tra un riferimento e ciò a cui si riferisce, come un simbolo con lo stesso nome inserito dal compilatore in un codice invisibile.
Kaz,

@Kaz: Come ho già detto nella mia risposta, ci sono diverse definizioni contrastanti di "trasparenza referenziale"
BlueRaja - Danny Pflughoeft

2

La libertà degli effetti collaterali, è ciò che vorrei usare.


Sfortunatamente, ciò ha un'interpretazione secondo cui gli effetti collaterali hanno libertà, non che la situazione sia libera da effetti collaterali; ciò è espresso in modo inequivocabile dalla "libertà dagli effetti collaterali".
Kaz,

3
Certamente. Anche se è vero, l'ho visto usato in pratica.
Dave Clarke,

2

Se eseguire la funzione più volte ha lo stesso effetto netto sul sistema di eseguirla una volta, la funzione è idempotente e ha idempotenza . Non so se è quello che stai cercando.


1
Grazie, è un altro concetto a cui dovrò pensare. Forse si potrebbe dire che idempotente è una forma più debole di libera da effetti collaterali. Ma non è esattamente quello che stavo cercando. (E in ogni caso non è un sostantivo. ;-))
risolve il

1
Un buon punto: la forma del nome è idempotenza.
Tin Man,

3
esempio di funzione idempotente chmod: puoi eseguirlo di nuovo più volte, non funzionerà più della prima volta (a meno che i file non vengano cambiati tra ...). Ce ne sono molti altri. Non è esattamente "privo di effetti collaterali", tuttavia, poiché cambia le cose e potrebbe impedire anche ad altri programmi di fare qualcosa, una volta che l'autorizzazione cambia.
Olivier Dulac il

1
Il termine è probabilmente il più importante nella programmazione web: se stai modificando un database (aggiungendo nuovi utenti, ad esempio) e hai a che fare con l'affidabilità di una rete, devi assicurarti che i messaggi duplicati ricevuti dal server non causare problemi imprevisti.
Tin Man,

2
Le funzioni idempotenti non sono assolutamente prive di effetti collaterali. N invocazioni di una funzione idempotente hanno lo stesso effetto collaterale complessivo di 1 invocazione. Una funzione senza effetto è un caso speciale di idempotenza.
Kaz,

1

Hai quasi capito con "libertà di effetti collaterali". Il problema è che ciò può significare che gli effetti collaterali sono gratuiti (come nella "libertà degli effetti collaterali"). Per essere chiari, hai bisogno di "libertà dagli effetti collaterali". E nota come "libero da" non si abbina a "libertà di"; sia "libero da qualcosa" che "libero da qualcosa" vanno in "libertà da qualcosa".

In generale, troverai che frasi composte di nomi la cui testa è "libertà" sono istintivamente evitate dai madrelingua inglesi, anche se sono grammaticali. Ad esempio "libertà di parola" e "libertà dall'oppressione" non sono chiamate "libertà di parola" e "libertà di oppressione". Il significato potrebbe essere compreso nel contesto ("libertà di parola" probabilmente non è "libertà di parola" e "libertà di oppressione" non è "libertà di oppressione") ma le forme non sono semplicemente eufoniche . Anche se questo è semplicemente in disuso, è così.

Documenti accademici in CS sono anche scritti per un pubblico mondiale che include persone di madrelingua inglese. Se sei in grado, allora scrivi come un madrelingua inglese.


Grazie per le spiegazioni, mi sembrano ragionevoli. Farebbe differenza se scrivessi la parola con trattini, come ho fatto nel post originale: "effetto collaterale-libertà"? O sarebbe sbagliato?
risolve il

I trattini non cambiano il significato. A proposito di trattini, vedi qui . Si applica la sezione sui nomi composti.
Kaz,

1
La "libertà degli effetti collaterali" è eccellente e ampiamente utilizzata. Non vi è alcuna ambiguità pratica perché, tra le due possibili analisi, "la libertà dagli effetti collaterali" è un concetto perfettamente sensato che viene spesso discusso, mentre la "libertà degli effetti collaterali" è un'assurdità di cui nessuno parla mai. Se una frase ha un significato ovvio, le persone non andranno in cerca di altri significati: continueranno semplicemente a leggere il resto della frase.
David Richerby,

1
@DavidRicherby Grazie per il commento, stavo pensando la stessa cosa. È comunque bello capire che esiste un'ambiguità teorica.
risolve il

1
"Libertà di effetto collaterale" è la frase idiomatica standard. C'è solo una cosa che potrebbe ragionevolmente significare; ergo , questo è ciò che significa. La grammatica esiste per servirci, non per schiavizzarci.
David Richerby,

-1

Probabilmente vuoi " ortogonalità ". Sembra adattarsi esattamente alla tua definizione.


Grazie per la risposta. Tuttavia, penso che la parola ortogonale sia usata solo per concetti e non per calcoli o funzioni. È tuttavia vero che due funzioni prive di effetti collaterali potrebbero essere viste come ortogonali, poiché non interferiscono l'una con l'altra.
risolve il

La mia comprensione è che "ortogonalità" è stata utilizzata anche per le funzioni (penso che le funzioni pure fossero chiamate "ortogonali" a volte). Ma potrei sbagliarmi, dal momento che "ortogonale" sembra che abbia bisogno di una seconda cosa, cioè qualcosa di ortogonale a qualcos'altro, quindi in effetti non può essere così generale, dopo tutto ...
CamilB,

Ma perché cerchi un termine separato per funzioni senza effetti collaterali? "Funzione pura" significa esattamente questo: sia deterministico che senza effetti collaterali (dice Wikipedia).
CamilB,

Questo è esattamente il punto: voglio ragionare su funzioni che sono prive di effetti collaterali ma non necessariamente deterministiche. Pure è già "troppo".
risolve il

Ora capisco. Sarebbe un esercizio interessante cercare funzioni non deterministiche e prive di effetti collaterali. Non riesco a pensare a nessuno, tranne un atomo, modellato con QM :) Posso raccomandare thesaurus.com? Forse c'è un antonimo di un nome correlato all'effetto collaterale là fuori. Inoltre, forse la parola che ti serve è una parola che deve essere aggiunta in inglese da un'altra lingua. Adesso ti lascio da solo :)
CamilB,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.