Stehlen von Philip Roberts hier :
- Imperative Programmierung sagt der Maschine, wie sie etwas tun soll (was zu dem führt, was Sie wollen)
- Bei der deklarativen Programmierung teilt man der Maschine mit, was man möchte (und der Computer findet heraus, wie er es tun soll)
Zwei Beispiele:
1. Verdoppelung aller Zahlen in einer Matrix
Unbedingt:
var numbers = [1,2,3,4,5]
var doubled = []
for(var i = 0; i < numbers.length; i++) {
var newNumber = numbers[i] * 2
doubled.push(newNumber)
}
console.log(doubled) //=> [2,4,6,8,10]
Deklarativ:
var numbers = [1,2,3,4,5]
var doubled = numbers.map(function(n) {
return n * 2
})
console.log(doubled) //=> [2,4,6,8,10]
2. Summierung aller Elemente in einer Liste
Unbedingt
var numbers = [1,2,3,4,5]
var total = 0
for(var i = 0; i < numbers.length; i++) {
total += numbers[i]
}
console.log(total) //=> 15
Deklarativ
var numbers = [1,2,3,4,5]
var total = numbers.reduce(function(sum, n) {
return sum + n
});
console.log(total) //=> 15
Beachten Sie, dass bei den imperativen Beispielen eine neue Variable erstellt, verändert und der neue Wert zurückgegeben wird (d. h. wie etwas geschieht), während bei den deklarativen Beispielen eine bestimmte Eingabe ausgeführt wird und der neue Wert auf der Grundlage der ursprünglichen Eingabe zurückgegeben wird (d. h. was geschehen soll).
76 Stimmen
Imperativ geht in ein Restaurant und bestellt ein Steak (blutig gebraten), Pommes frites (mit Ketchup), einen Beilagensalat (mit Ranch) und eine Cola (ohne Eis). Der Kellner liefert ihm genau das, was er bestellt hat, und berechnet ihm 14,50 Dollar. Auf der anderen Seite, Deklarativ geht in ein Restaurant und sagt dem Kellner, dass er nur etwa 12 Dollar für das Abendessen bezahlen möchte und Lust auf Steak hat. Der Kellner kommt mit einem Steak (medium gegart), Kartoffelpüree, gedünstetem Brokkoli, einem Brötchen und einem Glas Wasser zurück. Ihm werden 11,99 Dollar berechnet.
3 Stimmen
Ein weiteres gutes Beispiel, das ich gefunden habe, ist vielleicht, wie Sie Docker-Dateien und Befehle tun... z.B. ein imperativer Ansatz ist, dass Sie alle Ihre Schritte nacheinander in der Befehlszeile definieren, z.B. erstellen Sie einen Container in aws, erstellen Sie ein Netzwerk und dann setzen Sie Ihre Ressourcen irgendwie zusammen... der DECLARATIVE Ansatz wäre dann: Sie DECLARE eine Dockerdatei (oder docker-compose.yaml), wo Sie im Wesentlichen alle Ihre Befehle (oder Sie nur benennen, was Sie wollen, dass es zu tun) innerhalb einer Datei, und dann einfach diese Datei ausführen. Seine deklariert alle auf einmal vorher, so sollte es immer ähnlich verhalten.
1 Stimmen
Sie können die Natur eines deklarativen Programms und der deklarativen Programmierung besser verstehen, wenn Sie sie als einen Konfigurations- und Konfigurationsprozess betrachten.