Nom correspondant pour «sans effet secondaire»?

10

Pour les fonctions ou les calculs, nous avons des termes comme:

  • Déterministe - Déterminisme
  • Pur - Pureté

Maintenant, quel est le nom correspondant correct pour sans effet secondaire ?

"Effet secondaire"? "Liberté d'effets secondaires"? "Non efficace latéralement"?

rouler
la source
4
Cela ne devrait-il pas être sur la langue anglaise et l'utilisation ? ;) Dans tous les cas, pourriez-vous donner votre contexte d'utilisation? Je suis d'accord que l'utilisation d'un nom propre de ce type ne me semble pas appropriée. (En tant qu'Allemand natal, je sympathise; mais nous devons nous forcer à ne pas traduire de tels monstres littéralement. Ils sont presque toujours mauvais en allemand aussi, si possible.)
Raphael
1
L'effet secondaire sans effet est-il différent de pur?
Andrej Bauer
@Raphael J'ai aussi pensé à poser la question ici, mais comme je pose la question sur le nom correspondant correct dans un contexte de programmation, je pense que l'informaticien peut me donner de meilleures réponses.
départ
3
@AndrejBauer Je pense que pure est à la fois sans effets secondaires et déterministe, tandis que sans effets secondaires peut toujours être non déterministe.
départ
@Raphael Il n'y a en fait pas de contexte très spécifique. Je réfléchis actuellement à la façon dont les fonctions déterministes, sans effets secondaires et pures se rapportent les unes aux autres. Et penser à ces concepts sans avoir de nom pour chacun d'eux me met mal à l'aise. : D
tourner

Réponses:

8

Une bonne règle d'or pour les questions grammaticales est que si c'est si compliqué que vous devez demander, il est préférable de reformuler simplement la phrase. Par exemple, "La liberté des effets secondaires de la fonction garantit X" est écrite plus simplement et avec élégance, "Parce que la fonction est sans effets secondaires, X est garantie" ou même, "La fonction n'a pas d'effets secondaires, donc X est garanti."

Cela dit, les mots clés des articles devraient être des phrases nominales, ce qui serait un endroit où utiliser la «liberté des effets secondaires».

(Soit dit en passant, «non efficace sur le plan secondaire» est un adjectif.)

David Richerby
la source
(Soit dit en passant, "non efficace sur le côté" est un adjectif.) Bonne capture ... Et merci pour la réponse. Mais malheureusement, je n'ai pas besoin du mot pour juste une phrase.
tourner
8

Selon le contexte, «absence d'effets secondaires» peut être un terme plus lisible.

Raphael
la source
7

Le mot est nullipotence , la forme nominale de nullipotent . De la première définition sur le Wiktionnaire:

(mathématiques, informatique) Décrire une action sans effet secondaire . Les requêtes sont généralement nullipotentes: elles renvoient des données utiles, mais ne modifient pas la structure de données interrogée. Contraste avec idempotent.

(c'est moi qui souligne)

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

Matthew Piziak
la source
Wow, je n'ai jamais entendu parler de ce terme auparavant. Il ne semble pas être couramment utilisé (Google rapporte 16'300 résultats pour "nullipotent" et 1'580 résultats pour "nullipotence" et mon correcteur orthographique de navigateur ne connaît aucun d'eux). Mais je pourrais juste l'utiliser pour le plaisir! Merci.
tourner
3
Je suis un expert du domaine et je ne pense pas avoir jamais utilisé ce terme. Ce n'est pas un mauvais mot, mais il doit absolument être défini avant utilisation.
Gilles 'SO- arrête d'être méchant'
3
Cela m'a aidé à réaliser qu'il existe une différence entre nullpotentet nilpotent.
Val
1
@Val, oui, je pensais qu'ils signifiaient la même chose jusqu'à ce que j'étudie l'algèbre abstraite. Si je me sentais particulièrement cruel, je l'expliquerais en disant que quelque chose de nullpotent n'affecte rien, alors que quelque chose de nilpotent n'affecte rien. : P
Matthew Piziak
3

J'ai appris ce concept comme transparence référentielle .

Cependant, il y a un débat sur la question de savoir si c'est vraiment un terme significatif, donc si vous allez l'utiliser dans un document, vous devez le définir d'abord.

BlueRaja - Danny Pflughoeft
la source
2
La transparence référentielle n'est pas la même chose que l'absence d'effets secondaires. Vous pouvez avoir un langage purement fonctionnel dans lequel les macros provoquent la capture de noms indésirables à gauche et à droite, détruisant ainsi la transparence référentielle.
Kaz
@Kaz En parlant de référentiel, avez-vous des références pour cette histoire de macro?
tourner
@rolve je pourrais avoir une vue trop paroissiale. Pour un contraste, voir la définition du projet Tunes de la transparence référentielle qui a un lien avec l'absence d'effets secondaires: tunes.org/wiki/referential_20transparency_20and_20state.html
Kaz
@rolve Je pensais à la transparence référentielle dans le contexte de l'évaluation: les transformations de code peuvent déplacer des expressions, mais les références dans ces expressions fonctionnent correctement quoi qu'il arrive. Par exemple, les systèmes de macros hygiéniques seraient référentiellement transparents. Il n'y a rien "accidentellement opaque" entre une référence et ce à quoi elle se réfère, comme un symbole du même nom inséré par le compilateur dans un code invisible.
Kaz
@Kaz: Comme je l'ai mentionné dans ma réponse, il existe plusieurs définitions contradictoires de «transparence référentielle»
BlueRaja - Danny Pflughoeft
2

La liberté d'effets secondaires, c'est ce que j'utiliserais.

Dave Clarke
la source
Malheureusement, cela a une interprétation selon laquelle les effets secondaires sont libres, non pas que la situation soit exempte d'effets secondaires; cela s'exprime sans ambiguïté par "l'absence d'effets secondaires".
Kaz
3
Certainement. Même si c'est vrai, je l'ai vu utilisé dans la pratique.
Dave Clarke
2

Si l'exécution de la fonction plusieurs fois a le même effet net sur le système qu'une exécution unique, la fonction est idempotente et a l' idempotence . Je ne sais pas si c'est ce que vous recherchez.

L'homme d'étain
la source
1
Merci, c'est un autre concept auquel je devrai penser. On pourrait peut-être dire que l'idempotent est une forme plus faible de sans effets secondaires. Mais ce n'est pas exactement ce que je cherchais. (Et en tout cas ce n'est pas un nom. ;-))
lancez
1
Bon point - la forme nominale est idempotence.
Tin Man
3
exemple de fonction idempotente chmod:: vous pouvez la relancer plusieurs fois, elle ne fera pas plus que la première fois (sauf si les fichiers ont changé entre les deux ...). Il y en a bien d'autres. Cependant, il n'est pas exactement "sans effet secondaire" car il change les choses et pourrait empêcher d'autres programmes de faire quelque chose aussi, une fois l'autorisation modifiée.
Olivier Dulac
1
Le terme est probablement le plus important dans la programmation Web - si vous modifiez une base de données (en ajoutant de nouveaux utilisateurs, par exemple) et que vous traitez avec le manque de fiabilité d'un réseau, vous devez vous assurer que les messages dupliqués reçus par le serveur ne provoque pas de problèmes inattendus.
Tin Man
2
Les fonctions idempotentes ne sont certainement pas exemptes d'effets secondaires. N invocations d'une fonction idempotente a le même effet secondaire global que 1 invocation. Une fonction sans effet est un cas particulier d'idempotence.
Kaz
1

Vous avez presque réussi avec la "liberté des effets secondaires". Le problème est que cela signifie peut-être que les effets secondaires sont libres (comme dans "la liberté des effets secondaires"). Pour être clair, vous avez besoin de "l'absence d'effets secondaires". Et notez à quel point «libre de» ne va pas de pair avec «liberté de»; à la fois «libre de quelque chose» et «libre de quelque chose» vont à «se libérer de quelque chose».

En général, vous constaterez que les phrases nominales composées dont la tête est «liberté» sont instinctivement évitées par les locuteurs natifs de l'anglais, même si elles sont grammaticales. Par exemple, "liberté d'expression" et "liberté contre l'oppression" ne sont pas appelées "liberté d'expression" et "liberté d'oppression". Le sens pourrait être élaboré à partir du contexte (la «liberté de parole» n'est probablement pas «la liberté de parole» et la «liberté d'oppression» n'est pas «la liberté d'opprimer») mais les formes ne sont tout simplement pas euphoniques . Même si c'est simplement par désuétude, c'est comme ça.

Les articles académiques en CS sont également écrits pour un public mondial qui comprend des anglophones non natifs. Si vous le pouvez, écrivez comme un anglophone natif.

Kaz
la source
Merci pour les explications, elles me semblent raisonnables. Cela ferait-il une différence si j'épelais le mot avec des tirets, comme je l'ai fait dans le message d'origine: "liberté des effets secondaires"? Ou serait-ce tout simplement faux?
tourner
Les tirets ne changent pas le sens. À propos des tirets, voir ici . La section sur les noms composés s'applique.
Kaz
1
La "liberté des effets secondaires" est fine et largement utilisée. Il n'y a pas d'ambiguïté pratique car, des deux analyses possibles, "l'absence d'effets secondaires" est un concept parfaitement sensé qui est souvent discuté, tandis que la "liberté d'effets secondaires" est un non-sens dont personne ne parle jamais. Si une phrase a une signification évidente, les gens n'iront pas chercher d'autres significations: ils continueront simplement à lire le reste de la phrase.
David Richerby
1
@DavidRicherby Merci pour le commentaire, je pensais la même chose. Il est quand même agréable de comprendre qu'il existe une ambiguïté théorique.
tourner
1
«Liberté d'effets secondaires» est la phrase standard et idiomatique. Il n'y a qu'une seule chose que cela pourrait raisonnablement signifier; ergo , c'est ce que cela signifie. La grammaire existe pour nous servir, pas pour nous asservir.
David Richerby
-1

Vous voulez probablement une " orthogonalité ". Il semble correspondre exactement à votre définition.

CamilB
la source
Merci d'avoir répondu. Cependant, je pense que le mot orthogonal n'est utilisé que pour des concepts et non pour des calculs ou des fonctions. Il est cependant vrai que deux fonctions sans effet secondaire pourraient être considérées comme orthogonales, car elles n'interfèrent pas l'une avec l'autre.
tourner
Ma compréhension est que l '"orthogonalité" était également utilisée pour les fonctions (je pense que les fonctions pures étaient parfois appelées "orthogonales"). Mais je peux me tromper, car "orthogonal" donne l'impression qu'il a besoin d'une deuxième chose, c'est-à-dire quelque chose d'orthogonal à autre chose, donc ce ne peut pas être ce général après tout ...
CamilB
Mais pourquoi recherchez-vous un terme distinct pour des fonctions sans effets secondaires? "Fonction pure" signifie exactement cela: à la fois déterministe et sans effets secondaires (dit Wikipedia).
CamilB
C'est exactement le point: je veux raisonner sur les fonctions sans effets secondaires mais pas nécessairement déterministes. Pure, c'est déjà "trop".
tourner
Je comprends maintenant. Ce serait un exercice intéressant de rechercher des fonctions sans effets secondaires non déterministes. Je ne peux penser à aucun, sauf un atome, modélisé avec QM :) Puis-je recommander thesaurus.com? Peut-être y a-t-il un antonyme d'un nom lié aux effets secondaires. De plus, le mot dont vous avez besoin est peut-être un mot qui doit être ajouté à l'anglais à partir d'une autre langue. Je te laisse tranquille maintenant :)
CamilB