[PYTHON] Ist "destruktive Methode" ein Ruby-Begriff?

Gestern schrieb ich einen Artikel "Alle zerstörerischen Methoden, die Datenwissenschaftler kennen sollten" und erhielt die folgende Meinung von einem Freund. Es war.

Ich war ein wenig besorgt, aber "destruktive Methode" und "zerstörungsfreie Methode" sind keine allgemeine Programmierung, sondern Ruby-Begriffe und bedeuten nicht "Methode zum Wechseln des Empfängers"? Wenn Sie es wagen, es beim Namen zu nennen, scheint die Ersetzungsmethode korrekt zu sein. (Ich kann kein Japanisch finden) https://discuss.pytorch.org/t/what-is-in-place-operation/16244 https://ja.wikipedia.org/wiki/In-place Algorithmus

Darüber hinaus verwendet pandas beispielsweise auch den Argumentnamen "inplace" (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rename.html), also für Datenwissenschaftler. Dann wurde gesagt, dass an Ort und Stelle vertrauter sein könnte.

Natürlich denke ich, dass die meisten Artikel, die als "destruktiv" erscheinen, von Ruby stammen. Ich war ein wenig besorgt, also sah ich auf und verglich die Wörter "destruktiv" und "an Ort und Stelle" in Dokumenten in verschiedenen Sprachen.

Für Python: In-Place überwiegt

[Nach Dokumentation gesucht](https://docs.python.org/ja/3.8/search.html?q=%E3%82%A4%E3%83%B3%E3%83%97%E3%83% AC% E3% 83% BC% E3% 82% B9 & check_keywords = yes & area = default) Übrigens scheint das Wort "an Ort und Stelle" tatsächlich häufig verwendet zu werden. Beispiel: "[Programmier-FAQ](https://docs.python.org/ja/3.8/faq/programming.html?highlight=%E3%82%A4%E3%83%B3%E3%83%97%E3%" In "83% AC% E3% 83% BC% E3% 82% B9 # wie-ich-einen-String an Ort und Stelle modifiziere" ist es wie folgt.

Wie ändere ich einen String in In-Place? ¶

Sie können das nicht tun, weil die Zeichenfolge unveränderlich ist. In den meisten Fällen sollten Sie einfach eine neue Zeichenfolge aus den einzelnen Teilen zusammensetzen, die Sie zusammenbauen möchten.

Andererseits wird in gewissem Umfang auch das Wort "destruktiv" verwendet. Beispielsweise enthält die Dokumentation zu Python2.7 das Wort "destruktiv". Die neueste Version des Dokuments lautet "Löschen und zurückgeben", aber nur die japanische Übersetzung hat sich geändert.

Ähnlich wie der Set-Algorithmus ist popitem () nützlich, um Wörterbücher destruktiv zu iterieren. Wenn das Wörterbuch leer ist, löst der Aufruf von "popitem ()" "KeyError" aus.

Selbst in Python 3.8 enthält "Flüche --- Terminaloperation zur Behandlung der Anzeige von Zeichenzellen" zerstörungsfrei (zerstörungsfrei (zerstörungsfrei) ( Das Wort "zerstörungsfrei" wurde gefunden.

Überlagern Sie das Fenster mit destwin. Die Fenster müssen nicht gleich groß sein, nur die überlappenden Bereiche werden dupliziert. Diese Kopie ist zerstörungsfrei.

Es gibt auch "destruktiv" in der Ferne.

Überschreiben Sie den Inhalt des Fensters über destwin. Die Fenster müssen nicht gleich groß sein, nur die überlappenden Bereiche werden dupliziert. Diese Kopie ist destruktiv.

Für Ruby: Der Begriff destruktive Methode wird erklärt

In den offiziellen Ruby-FAQ gab es den Punkt "Was ist eine destruktive Methode?". Für die japanische Version wurde keine Übersetzung gefunden.

The plain version creates a copy of the receiver, makes its change to it, and returns the copy. The “bang” version (with the !) modifies the receiver in place.

Das Wort "an Ort und Stelle" wird auch in der Beschreibung verwendet.

Ich habe in der Dokumentation nicht viel getroffen, also werde ich mir Rubima ansehen. Immerhin wird oft das Wort "destruktiv" verwendet. Zum Beispiel aus "Ruby Code Impressions [2nd] WikiR".

force_encoding ist eine destruktive Methode, obwohl es schwierig ist, sie nur anhand des Namens zu erkennen, da sie keine hat! Daher muss der Rückgabewert nicht dem Text zugewiesen werden. Das ist genug.

An einigen Stellen wurde das Wort an Ort und Stelle in der "Sitzung am 10. Juni morgens" verwendet.

Syntaktisch wurde der Ertrag gestört, als der Ertrag zuerst eintrat und später mit blockierten Argumenten eingeführt wurde. Außerdem mutiere ich nicht direkt mit String, aber es ist nicht gut, durcheinander zu sein. Ich bedauere 98% der integrierten Variablen, die ich von Perl erhalten habe.

Für PHP: Beide werden zusammen verwendet

Es scheint, dass sowohl die Wörter "an Ort und Stelle" als auch "destruktiv" verwendet werden. Es scheint, dass diese Teile noch nicht ins Japanische übersetzt wurden?

Aus "Ds \ Sequence :: sort"

Sorts the sequence in-place, using an optional comparator function.

Von Ds \ PriorityQueue :: toArray.

Hinweis:

This method is not destructive.

Andere Sprachen

Ich wollte mir auch Smalltalk ansehen, das Ruby beeinflusste, aber es war nicht klar. Wenn Sie sich jedoch die Dokumentation zu [Smalltalk-72] ansehen (http://bitsavers.informatik.uni-stuttgart.de/pdf/xerox/parc/techReports/Smalltalk-72_Instruction_Manual_Mar76.pdf), gibt es mindestens ein Wort, das nicht destruktiv ist. Es wurde stellenweise verwendet.

Note that you can make non-destructive text by using xor ink which complements the background so that reshowing the text crases it while restoring what was underneath.

Ich habe mir auch Haskell angesehen, das im Grunde unveränderliche Variablen enthält, aber nur diejenigen gefunden, deren destruktiv verwendet wurde, um "eine Aktualisierung einer Sprachspezifikation zu bedeuten, die in der Vergangenheit nicht kompatibel war". Ich gab auf, weil das Lesen selbst mir jetzt weh tat.

Außerdem wird es in Ruby in der Nähe der richtigen Nomenklatur "destruktive Methode" verwendet, während destruktiv in anderen Sprachen als allgemeines Adjektiv verwendet zu werden scheint. Vielleicht ist der Begriff "destruktive Methode" ein Begriff, der in der Ruby-Community verwendet wurde, aber auf Japanisch als Programmierbegriff anerkannt und verbreitet wurde. Ich werde es noch einmal überprüfen, wenn ich eine Chance habe.

Recommended Posts

Ist "destruktive Methode" ein Ruby-Begriff?
Was ist eine Distribution?
Was ist ein Terminal?
Was ist ein Hacker?
Was ist ein Zeiger?
Ist diese Zeichenfolge ein Bruchteil?
Ist das ein Systemhandel?
Was ist ein Entscheidungsbaum?
Was ist ein Kontextwechsel?
Was ist ein Systemaufruf?
[Definition] Was ist ein Framework?
Dies ist eine Webiopi-Frage
Was ist eine Rückruffunktion?
Profil innerhalb einer Methode der Klasse
Das Bild ist Namekuji