*** Eine kleine Spielerei um mich mit der Funktionalen Programmierung vertraut zu machen. ***
Abkürzungen: FL = Funktionale Lösung; HL = Herkömmliche Lösung (in dem Sinne das ich das normalerweise so machen würde. Daher den Begriff "Herkömmlich" nicht Falsch interpretieren).
Folgende Aufgabenstellung wollte ich einmal in der Herkömmlichen Variante (prozedural) implementieren und in einer Funktionalen Variante. Anmerkung: Die Anforderung für mich war aber, das die Funktionale Variante in einem Schritt und nicht in mehreren implementiert wird (*² Also durch eine einzige Variable die einen LC enthält dessen Bestatteile aus mehreren maps, filter, lambda, etc besteht )
Aufgabenstellung:
- 1. Eine liste wird von 0 – n gefüllt. (liste)
- 2. Jede Zahl wird mit sich selbst potenziert.
- 3. Jede potenzierte Zahl die nicht gerade (aber einen Rest von 1 ergibt und nur das) und nicht 1 ist, landet in eine Neue Liste (liste2)
- 4. Jede potenzierte Zahl die gerade ist landet in eine neue Liste. (Liste3)
- 5. Es entstehen durch Punkt 2 bis 4 zwei Listen (liste2, liste3) der gleichen Länge.
- 6. Anschließend wird die erste Liste (liste) gelöscht (list=[]).
- 7. Jedes Zahl der zweiten Liste (liste2) wird von der jeder Zahl der dritten Liste (liste3) subtrahiert und dann in die erste Liste hinzugefügt, die ja zuvor gelöscht wurde und somit leer ist. (liste.append(liste2[n] - liste3[n]))
Ist zwar trivial aber dennoch komplex genug für mich, da ich mich mit FP erst seit letzter und dieser Woche auseinander setze, um das zu versuchen nach obiger Bedienung*² als FL zu implementieren.
EDIT: Punkt 3 editiert. (Hat sich ein Fehler eingeschlichen.)