Python-Programmierung funktionaler vs. Imperativ-Code

8

Ich bin gerade in einer Klasse und lerne über die 3 wichtigsten Programmierparadigmen. Ich weiß, dass Python sowohl die funktionalen als auch die imperativen Paradigmen verwendet. Ich suchte nach einem kurzen Beispielcode in Python von jedem dieser Paradigmen, um dies vor meiner Prüfung morgen besser zu verstehen. Danke!

    
Bobcat88 20.02.2014, 00:19
quelle

3 Antworten

13

Gegeben L = [1, 2, 3, 4, 5] können wir die Summe auf zwei Arten berechnen.

Imperativ:

%Vor%

Funktional (lokale Funktion):

%Vor%

Funktional (Lambda-Ausdruck):

%Vor%

(Natürlich würde die integrierte sum -Funktion genau das gleiche wie diese beiden Funktionen haben.)

    
Timothy Shields 20.02.2014, 00:27
quelle
11

Eine Möglichkeit, den Unterschied zwischen imperativen und funktionalen Paradigmen zu sehen, ist, dass Sie die Reihenfolge Ihrer Operationen mit Imperativ explizit kodieren müssen (ich verwende hier eine sehr lockere Sprache, um es Ihnen einfach zu machen). Im Gegensatz dazu definieren Sie bei der funktionalen Programmierung nicht die Sequenz, sondern Sie deklarieren, was Sie zu modellieren versuchen (deshalb wird es manchmal als deklarativer Programmierstil bezeichnet).

Wenn ich im folgenden Beispiel bestimmen will, welche Zahlen gerade in der Liste sind, muss ich die Schleife explizit codieren und prüfen, ob jede Zahl gerade ist oder nicht, wenn sie zwingend codiert wird. Ich musste das im Funktionsbeispiel nicht machen. In diesem Beispiel habe ich gerade definiert, was es bedeutet, dass eine Zahl gerade ist, und dann habe ich diese Abstraktion / Funktion nur auf die Liste angewendet. Ein einfacher Liner.

Es gibt mehr Unterschiede zwischen den beiden Paradigmen, aber dies sollte Ihnen eine Idee geben.

Imperativ:

%Vor%

Funktional:

%Vor%     
Mika'il 20.02.2014 00:46
quelle
0

Sie können ein Wörterbuch auf zwei Arten umkehren:

%Vor%

Es ist keine echte funktionale Programmierung, aber es bietet eine andere Art, über die Lösung des Problems nachzudenken, und genau das ist es, worauf sich Ihr Lehrer zu konzentrieren versucht.

    
Phillip Carter 20.02.2014 00:33
quelle