[PYTHON] Eine Einführung in die funktionale Programmierung zur Verbesserung der Debugging-Effizienz in 1 Minute

Markieren

  1. Was passiert, wenn Sie funktionale Programmierung lernen?
  2. Wie man funktionale Programmierung übt
  3. Was sind die Ähnlichkeiten zwischen funktionaler Programmierung und objektorientiert?

Was passiert, wenn Sie funktionale Programmierung lernen?

Die folgenden Probleme werden reduziert und die Debugging-Effizienz verbessert.

"Diese Flagge sollte wahr sein, aber sie ist falsch!" "Ich weiß nicht, wo die Ursache des Fehlers liegt." "Wenn Sie das Problem beheben, liegt möglicherweise irgendwo wieder ein Problem vor."

Wie man funktionale Programmierung übt

Entwerfen Sie die folgenden beiden Funktionen genau getrennt und vergrößern Sie den reinen Bereich, um den verschmutzten Bereich zu verringern.

1. Reine Funktion

Eine Funktion, die immer dasselbe Ergebnis für dasselbe Argument zurückgibt und den Bereich außerhalb der Funktion nicht beeinflusst.

2. Schmutzige Funktion

Eine Funktion, die unterschiedliche Ergebnisse mit demselben Argument zurückgibt oder den Bereich außerhalb der Funktion beeinflusst

Sag es mir genauer

Das Folgende ist ein Beispiel. Es spielt keine Rolle, ob Sie einfach und klar zwischen reinen und schmutzigen Dingen wie dem Trennen von Paketen und Dateien oder durch Benennen unterscheiden können, und ob Sie den reinen Bereich relativ dick machen können.


class Pure:
	"""
Eine Klasse reiner Funktionen
Mach das fett
	"""
	def plus(self,a,b):
		return a + b
	def minus(self,a,b):
		return a - b


class Dirty:
	"""
Gruppierte Klasse für schmutzige Funktionen
	=Eine Klasse mit einer Funktion, die den Status ändert
Reduzieren Sie dies
	"""
	def __init__(self):
		self.my_number = 0
	def plus(self,a):
		self.my_number = self.my_number + a
		return self.my_number
	def minus(self,b):
		self.my_number = self.my_number - 1
		return self.my_number


Warum können Sie die Debugging-Zeit verkürzen, indem Sie den reinen Bereich verdicken?

Es gibt vier Gründe.

  1. Reine Funktionen nehmen keine unbeabsichtigten Variablenänderungen vor
  2. Sie müssen sich keine Gedanken über die Auswirkungen auf andere machen, wenn Sie eine reine Funktion ändern (wenden Sie die Funktion einfach richtig an).
  3. Wenn es sich um eine reine Funktion handelt, kann eine Funktion, selbst wenn sie aufgebläht ist, leicht geteilt und wiederverwendet werden, wenn sie rein gehalten wird.
  4. Es ist ein schmutziger Bereich, der anfällig für Fehler ist. Wenn Sie ihn also klein halten, ist es einfacher, die Fehler zu finden.

Was ist eine funktionale "Sprache"?

Eine Sprache, die einfach funktional zu programmieren ist. Es eignet sich zum Schreiben mit reichlich vorhandenen Sprachen, die Funktionen handhaben, oder mit reinen Funktionen. Die funktionale Programmierung selbst kann VB oder was auch immer sein.

Was sind die Ähnlichkeiten und Unterschiede zwischen funktionaler Programmierung und objektorientierter Programmierung?

Das Gemeinsamste ist, die Auswirkungen eines Bereichs auf einen anderen zu minimieren. Die Objektorientierung versucht dies durch Einkapselung, Polymorphismus und Vererbung zu erreichen. Die funktionale Programmierung versucht, eine reine Funktion wie die oben beschriebene zu mästen, um das Problem von Zustandsänderungen zu minimieren.

Das Folgende kann in einer sehr persönlichen Sichtweise voreingenommen sein Beides sind keine widersprüchlichen Konzepte, sondern Koexistenzkonzepte, aber die Objektorientierung erfolgt üblicherweise unter der Voraussetzung, den Zustand vieler Objekte zu ändern, so dass der oben genannte Zweck "ein bestimmter Bereich" ist. Es ist schwierig, die Auswirkungen von Auswirkungen auf andere Bereiche zu minimieren. Ich bin auch der Meinung, dass die Objektorientierung im Vergleich zur funktionalen Programmierung weniger wahrscheinlich zu Ergebnissen führt als Lern- und Designkosten. Unter Berücksichtigung des Kompromisses mit der Zeit mache ich eine bestimmte Klassifizierung, aber ich achte nur auf Pure oder Dirty.

Zusammenfassung

Das Herzstück der funktionalen Programmierung ist die Mast des reinen Bereichs. Funktionale Programmierung ist eine köstliche und vielseitige Technologie, die aufgrund ihrer geringen Lernkosten sehr effektiv ist.

Recommended Posts

Eine Einführung in die funktionale Programmierung zur Verbesserung der Debugging-Effizienz in 1 Minute
Eine Einführung in die Python-Programmierung
Eine Einführung in die objektorientierte Programmierung für Anfänger von Anfängern
Einführung in Private TensorFlow
Eine Einführung in das maschinelle Lernen
AOJ Einführung in die Programmierung Thema Nr. 7, Thema Nr. 8
Ich möchte die Effizienz mit Python auch in experimentellen Systemen verbessern (2) RS232C und pySerial
AOJ Einführung in die Programmierung Thema Nr. 5, Thema Nr. 6
Ich möchte die Effizienz mit Python auch in einem experimentellen System verbessern. (1) Installieren Sie Anaconda mit Chocolatey
Eine Einführung in die moderne Socket-API zum Erlernen in C.
Einführung in die Bayes'sche Optimierung
Programmieren, um in der Welt zu kämpfen ~ 5-1
Programmierung, um in der Welt zu kämpfen ~ 5-5,5-6
Funktionsprogrammierung in Python Project Euler 1
Programmieren, um in der Welt zu kämpfen 5-3
Eine Einführung in Mercurial für Nicht-Ingenieure
[Einführung in Python3 Tag 1] Programmierung und Python
Funktionale Programmierung in Python Project Euler 3
Programmierung für den Kampf in der Welt - Kapitel 4
Funktionsprogrammierung in Python Project Euler 2
Erste Schritte mit Python für Nicht-Ingenieure
Eine Alternative zu "Pause" in Python
Programmieren, um in der Welt zu kämpfen ~ 5-2
[Python Tutorial] Eine einfache Einführung in Python
Ich möchte die Effizienz mit Python auch in einem experimentellen System verbessern. (3) Ich möchte mit Pandas so etwas wie Excel machen
Eine Einführung in OpenCV für maschinelles Lernen
Rekursives neuronales Netzwerk: Eine Einführung in RNN
Eine Einführung in Python für maschinelles Lernen
Probieren Sie eine funktionale Programmierpipe in Python aus
Einführung in Docker Erstellen einer Ubuntu-Umgebung in Ubuntu
Einführung in Vektoren: Lineare Algebra in Python <1>
Einführung in die Überprüfung der Wirksamkeit Kapitel 1 in Python geschrieben
Eine Einführung in die Objektorientierung - Geben Sie einem Objekt ein Kind.
Eine Einführung in Python für C-Sprachprogrammierer
Einführung in Deep Learning (1) --Chainer wird Anfängern leicht verständlich erklärt.