Entsprechendes Substantiv für „nebenwirkungsfrei“?

10

Für Funktionen oder Berechnungen haben wir Begriffe wie:

  • Deterministisch - Determinismus
  • Reinheit

Was ist nun das richtige entsprechende Substantiv für nebenwirkungsfrei ?

"Nebenwirkungsfreiheit"? "Nebenwirkungsfreiheit"? "Nicht nebenwirksam"?

rolve
quelle
4
Sollte dies nicht auf English Language & Usage sein ? ;) Könnten Sie auf jeden Fall Ihren Nutzungskontext angeben? Ich bin damit einverstanden, dass sich die Verwendung eines solchen Eigennamens nicht richtig anfühlt. (Als gebürtiger Deutscher ich sympathisieren, aber wir müssen uns zwingen , nicht solche Monster buchstäblich zu übersetzen Sie sind fast immer schlecht in Deutsch, auch wenn möglich..)
Raphael
1
Unterscheidet sich nebenwirkungsfrei von rein?
Andrej Bauer
@Raphael Ich habe auch darüber nachgedacht, die Frage dort zu stellen, aber da ich in einem Programmierkontext nach dem richtigen entsprechenden Substantiv frage , denke ich, dass der Informatiker mir bessere Antworten geben kann.
Rolve
3
@AndrejBauer Ich denke, dass rein sowohl nebenwirkungsfrei als auch deterministisch ist, während nebenwirkungsfrei immer noch nicht deterministisch sein kann.
Rolve
@ Raphael Es gibt eigentlich keinen sehr spezifischen Kontext. Ich denke gerade darüber nach, wie deterministische, nebenwirkungsfreie und reine Funktionen zueinander in Beziehung stehen. Und über diese Konzepte nachzudenken, ohne für jedes einen Namen zu haben, macht mich unruhig. : D
Rolve

Antworten:

8

Eine gute Faustregel für grammatikalische Fragen lautet: Wenn es so kompliziert ist, dass Sie Fragen stellen müssen, ist es besser, den Satz einfach neu zu formulieren. Zum Beispiel wird "Nebenwirkungsfreiheit der Funktion garantiert X" einfacher und eleganter geschrieben: "Da die Funktion nebenwirkungsfrei ist, ist X garantiert" oder sogar "Die Funktion hat keine Nebenwirkungen, also X. ist garantiert."

Allerdings wird erwartet, dass Schlüsselwörter für Artikel Nominalphrasen sind, sodass hier "Freiheit für Nebenwirkungen" verwendet werden kann.

(Übrigens ist "nicht nebenwirksam" ein Adjektiv.)

David Richerby
quelle
(Übrigens ist "nicht nebenwirkend" ein Adjektiv.) Guter Fang ... Und danke für die Antwort. Aber leider brauche ich das Wort nicht nur für einen Satz.
Rolve
8

Je nach Kontext kann "Abwesenheit von Nebenwirkungen" ein besser lesbarer Begriff sein.

Raphael
quelle
7

Das Wort ist nullipotence , die Nomenform von nullipotent . Aus der ersten Definition von Wiktionary:

(Mathematik, Computer) Beschreibung einer Aktion, die keine Nebenwirkungen hat . Abfragen sind normalerweise nullipotent: Sie geben nützliche Daten zurück, ändern jedoch nicht die abgefragte Datenstruktur. Kontrast zu idempotent.

(Hervorhebung von mir)

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

Matthew Piziak
quelle
Wow, ich habe noch nie von diesem Begriff gehört. Es scheint nicht allgemein verwendet zu werden (Google meldet 16'300 Ergebnisse für "nullipotent" und 1'580 Ergebnisse für "nullipotence" und meine Browser-Rechtschreibprüfung kennt keine von beiden). Aber ich könnte es nur deswegen benutzen! Vielen Dank.
Rolve
3
Ich bin ein Domain-Experte und glaube nicht, dass ich diesen Begriff jemals verwendet habe. Es ist kein schlechtes Wort, aber es muss definitiv vor der Verwendung definiert werden.
Gilles 'SO - hör auf böse zu sein'
3
Dies half mir zu erkennen, dass es einen Unterschied zwischen nullpotentund gibt nilpotent.
Val
1
@Val, ja, ich dachte, sie bedeuten dasselbe, bis ich abstrakte Algebra studierte. Wenn ich mich besonders grausam fühlen würde, würde ich es erklären, indem ich sage, dass etwas Nullpotentes nichts beeinflusst, während etwas Nullpotentes nichts bewirkt. : P
Matthew Piziak
3

Ich habe dieses Konzept als referentielle Transparenz gelernt .

Es gibt jedoch einige Debatten darüber, ob dies tatsächlich ein aussagekräftiger Begriff ist oder nicht. Wenn Sie ihn also in einem Papier verwenden möchten, sollten Sie ihn zuerst definieren.

BlueRaja - Danny Pflughoeft
quelle
2
Referentielle Transparenz ist nicht dasselbe wie das Fehlen von Nebenwirkungen. Sie können eine rein funktionale Sprache verwenden, in der Makros links und rechts eine unerwünschte Namenserfassung bewirken und dadurch die referenzielle Transparenz zerstören.
Kaz
@Kaz Apropos referentiell, haben Sie Referenzen für diese Makro-Story?
Rolve
@rolve Ich könnte eine zu parochiale Ansicht vertreten. Im Gegensatz dazu siehe die Definition der referenziellen Transparenz im Tunes-Projekt, die einen Zusammenhang mit der Freiheit von Nebenwirkungen hat: tunes.org/wiki/referential_20transparency_20and_20state.html
Kaz
@rolve Ich habe im Zusammenhang mit der Evaluierung an referenzielle Transparenz gedacht: Codetransformationen können Ausdrücke verschieben, aber die Referenzen in diesen Ausdrücken funktionieren ordnungsgemäß, egal was passiert. Beispielsweise sollen hygienische Makrosysteme referenziell transparent sein. Es gibt nichts "versehentlich Undurchsichtiges" zwischen einer Referenz und dem, worauf sie sich bezieht, wie ein gleichnamiges Symbol, das vom Compiler in einen unsichtbaren Code eingefügt wird.
Kaz
@Kaz: Wie ich in meiner Antwort erwähnt habe, gibt es mehrere widersprüchliche Definitionen von 'referentieller Transparenz'
BlueRaja - Danny Pflughoeft
2

Nebenwirkungsfreiheit würde ich nutzen.

Dave Clarke
quelle
Leider hat dies eine Interpretation, dass Nebenwirkungen Freiheit haben, nicht dass die Situation frei von Nebenwirkungen ist; das drückt sich eindeutig in "Freiheit von Nebenwirkungen" aus.
Kaz
3
Bestimmt. Obwohl das stimmt, habe ich gesehen, dass es in der Praxis verwendet wird.
Dave Clarke
2

Wenn das mehrmalige Ausführen der Funktion den gleichen Nettoeffekt auf das System hat wie das einmalige Ausführen, ist die Funktion idempotent und idempotenz . Ich weiß nicht, ob Sie danach suchen.

Blechmann
quelle
1
Danke, das ist ein weiteres Konzept, über das ich nachdenken muss. Vielleicht könnte man sagen, dass idempotent eine schwächere Form von nebenwirkungsfrei ist. Aber es ist nicht genau das, wonach ich gesucht habe. (Und auf jeden Fall ist es kein Substantiv .;-))
Rolve
1
Guter Punkt - die Nomenform ist Idempotenz.
Tin Man
3
Beispiel für eine idempotente Funktion :: chmodSie können sie mehrmals ausführen, sie wird nicht mehr als beim ersten Mal ausgeführt (es sei denn, die Dateien wurden zwischendurch geändert ...). Es gibt viele andere. Es ist jedoch nicht gerade "nebenwirkungsfrei", da es Dinge ändert und andere Programme daran hindern könnte, auch etwas zu tun, sobald sich die Berechtigung ändert.
Olivier Dulac
1
Der Begriff ist wahrscheinlich der wichtigste in der Webprogrammierung. Wenn Sie eine Datenbank ändern (z. B. neue Benutzer hinzufügen) und mit der Unzuverlässigkeit eines Netzwerks zu tun haben, müssen Sie sicherstellen, dass doppelte Nachrichten vom Server empfangen werden Verursachen Sie keine unerwarteten Probleme.
Tin Man
2
Idempotente Funktionen sind definitiv nicht nebenwirkungsfrei. N Aufrufe einer idempotenten Funktion haben insgesamt den gleichen Nebeneffekt wie 1 Aufruf. Eine Funktion ohne Wirkung ist ein Sonderfall der Idempotenz.
Kaz
1

Sie haben es fast mit "Nebenwirkungsfreiheit" bekommen. Das Problem ist, dass dies möglicherweise bedeutet, dass die Nebenwirkungen frei sind (wie bei "Freiheit von Nebenwirkungen"). Um klar zu sein, brauchen Sie "Freiheit von Nebenwirkungen". Und beachten Sie, dass "frei von" nicht mit "Freiheit von" gepaart wird; Sowohl "frei von etwas" als auch "frei von etwas" gehen zu "Freiheit von etwas".

Im Allgemeinen werden Sie feststellen, dass zusammengesetzte Nominalphrasen, deren Kopf "Freiheit" ist, von englischen Muttersprachlern instinktiv gemieden werden, obwohl sie grammatikalisch sind. Beispielsweise werden "Redefreiheit" und "Unterdrückungsfreiheit" nicht als "Redefreiheit" und "Unterdrückungsfreiheit" bezeichnet. Die Bedeutung könnte aus dem Kontext herausgearbeitet werden ("Sprachfreiheit" ist wahrscheinlich nicht "Redefreiheit" und "Unterdrückungsfreiheit" ist nicht "Unterdrückungsfreiheit"), aber die Formen sind einfach nicht euphonisch . Auch wenn das nur aus Nichtgebrauch ist, ist es so wie es ist.

Akademische Arbeiten in CS sind auch für ein Weltpublikum geschrieben, zu dem auch nicht englische Muttersprachler gehören. Wenn Sie in der Lage sind, schreiben Sie wie ein englischer Muttersprachler.

Kaz
quelle
Vielen Dank für die Erklärungen, sie erscheinen mir vernünftig. Würde es einen Unterschied machen, wenn ich das Wort mit Bindestrichen buchstabiere, wie ich es im ursprünglichen Beitrag getan habe: "Nebenwirkungsfreiheit"? Oder wäre das einfach falsch?
Rolve
Die Bindestriche ändern nichts an der Bedeutung. Informationen zu Bindestrichen finden Sie hier . Es gilt der Abschnitt über zusammengesetzte Substantive.
Kaz
1
"Nebenwirkungsfreiheit" ist in Ordnung und weit verbreitet. Es gibt keine praktische Unklarheit, da von den beiden möglichen Analysen "Freiheit von Nebenwirkungen" ein durchaus vernünftiges Konzept ist, das oft diskutiert wird, während "Freiheit von Nebenwirkungen" Unsinn ist, über den niemand jemals spricht. Wenn eine Phrase eine offensichtliche Bedeutung hat, werden die Leute nicht nach anderen Bedeutungen suchen: Sie werden einfach den Rest des Satzes lesen.
David Richerby
1
@ DavidRicherby Danke für den Kommentar, ich habe das Gleiche gedacht. Es ist immer noch schön zu verstehen, dass es eine theoretische Mehrdeutigkeit gibt.
Rolve
1
"Nebenwirkungsfreiheit" ist die übliche Redewendung. Es gibt nur eine Sache, die vernünftigerweise bedeuten könnte; Ergo , das ist es, was es bedeutet. Grammatik existiert, um uns zu dienen, nicht um uns zu versklaven.
David Richerby
-1

Sie wollen wahrscheinlich " Orthogonalität ". Es scheint genau zu Ihrer Definition zu passen.

CamilB
quelle
Danke für die Antwort. Ich denke jedoch, dass das Wort orthogonal nur für Konzepte und nicht für Berechnungen oder Funktionen verwendet wird. Es ist jedoch richtig, dass zwei nebenwirkungsfreie Funktionen als orthogonal angesehen werden könnten, da sie sich nicht gegenseitig stören.
Rolve
Mein Verständnis ist, dass "Orthogonalität" auch für Funktionen verwendet wurde (ich denke, reine Funktionen wurden manchmal als "orthogonal" bezeichnet). Aber ich könnte mich irren, da "orthogonal" das Gefühl hat, dass es eine zweite Sache braucht, dh etwas Orthogonales zu etwas anderem, also kann es doch nicht so allgemein sein ...
CamilB
Aber warum suchen Sie nach einem separaten Begriff für Funktionen ohne Nebenwirkungen? "Reine Funktion" bedeutet genau das: sowohl deterministisch als auch ohne Nebenwirkungen (sagt Wikipedia).
CamilB
Genau das ist der Punkt: Ich möchte über Funktionen nachdenken, die nebenwirkungsfrei, aber nicht unbedingt deterministisch sind. Rein ist schon "zu viel".
Rolve
Ich verstehe jetzt. Es wäre eine interessante Übung, nach nicht deterministischen, nebenwirkungsfreien Funktionen zu suchen. Ich kann mir nur ein Atom vorstellen, das mit QM modelliert wurde :) Darf ich thesaurus.com empfehlen? Vielleicht gibt es da draußen ein Antonyme eines Substantivs, das mit Nebenwirkungen zusammenhängt. Vielleicht ist das Wort, das Sie benötigen, auch ein Wort, das aus einer anderen Sprache zu Englisch hinzugefügt werden muss. Ich werde dich jetzt in Ruhe lassen :)
CamilB