Deklarative Programmierung In diesem Kapitel Funktionale Programmierung mit Python Funktionale Programmierung mit Elm Logische Programmierung q Startseite 8. Deklarative Programmierung 1. Funktionale Programmierung mit Python + 1. Warum funktional programmieren? + 1. Einstieg - Spaghetticode + 2. Exkurs - Von der maschinennahen zur strukturierten Programmierung + 3. Einstieg - Seiteneffekte + 4. Exkurs - Von der strukturierten zur funktionalen Programmierung + 2. Funktionen als Programmierbausteine + 1. Station - Datenverarbeitung mit Funktionen + 2. Station - Funktionskomposition + 3. Station - Fallunterscheidungen + 4. Station - Rekursion + 5. Praktikum - Programmieren mit (rekursiven) Funktionen + 3. Funktionen als Datenobjekte + 1. Station - Funktionen höherer Ordnung + 2. Station - Der map-Operator + 3. Station - Der filter-Operator + 4. Deklarative Programmierung + 1. Station - Beschreiben statt Befehlen + 2. + 3. Miniprojekt - Geometrische Abbildungen 2. Funktionale Programmierung mit Elm + 1. Vorwort + 1. Warum funktional programmieren? + 2. Benötigte Software + 3. REPL + 4. Mögliche Wege durch das Kapitel + 2. Programmierung mit Elm + 1. Daten und ihre Verarbeitung + 1. Beispiel - Wandtattoo Ein Berechnungsproblem Berechnungen in der REPL Das Kostenberechnungsproblem + 2. Experimente - Int und Float Zwei Sorten von Zahlen Rechenoperationen Typumwandlungen Vordefinierte Funktionen + 3. Beispiel - Verschlüsselung Zwei einfache Verschlüsselungsverfahren Experimente in der REPL zum Caesar-Verfahren Experimente in der REPL zum Umkehrverfahren Rückblick und Ausblick + 4. Experimente - Char und String Zeichen und Zeichenketten Vordefinierte Funktionen zur Verarbeitung von Zeichen Vordefinierte Funktionen zur Verarbeitung von Zeichenketten + 5. Beispiel - Schaltjahre Ein Berechnungsproblem Experimente in der REPL + 6. Experimente - Bool Wahrheitswerte Logische Operatoren Vordefinierte boolsche Funktionen + 7. Vertiefung - Operatorrangfolge + 8. Übungen + 9. Fachkonzept - Datentyp + 10. Fachkonzept - Vordefinierte Funktion + 11. Fachkonzept - Ausdruck + 2. Funktionen als Programmierbausteine + 1. Beispiel - Wandtattoo Modellierung einer Funktion Implementierung einer Funktion Eine weitere Funktion Typangaben + 2. Vertiefung - Module und Elm-Projekte + 3. Übungen + 4. Fachkonzept - Funktion + 5. Fachkonzept - Konstante + 6. Fachkonzept - REPL und Projekte + 3. Listen und Zeichenketten + 1. Beispiel - Notenliste Problemsituation Verwaltung der Daten Daten hinzufügen Verarbeitung mit vordefinierten Funktionen Listen von Listen Funktionen höherer Ordnung Partielle Funktionsanwendung + 2. Beispiel - Caesar Problemsituation Umwandlung in Liste Funktionen höherer Ordnung Partielle Funktionsanwendung + 3. Übungen + 4. Fachkonzept - Liste + 5. Fachkonzept - Funktion höherer Ordnung + 3. Dynamische Webseiten mit Elm + 1. Hallo Elm + 1. HTML-Grundlagen + 2. Hallo Elm - online ellie-app.com Analyse Tipps + 3. Hallo Elm - lokal elm init elm make elm-live + 4. Übungen + 4. Nachwort 3. Logische Programmierung + 1. Modellierung von Wissen + 1. Die Wissensbasis + 2. Modellierung mit Fakten + 3. Fachkonzept Fakten + 4. Programmieren mit Prolog + 5. Anfragen an die Wissensbasis + 6. Fachkonzept Anfragen + 7. Übungen zu Anfragen + 8. Modellierung mit Regeln + 9. Fachkonzept Regeln + 10. Rekursive Regeln + 11. Übungen zu Regeln + 12. Zusammenfassung - Programmierkonzept + 13. Zusammenfassende Übungen + 2. Auswertung von Anfragen + 1. Die Schlussregel modus ponens + 2. Suche nach logischen Herleitungen + 3. Automatisierung des logischen Schließens + 4. Experimente mit Prolog + 3. Verwaltung von Daten + 1. Terme + 1. Stadt-Land-Fluss + 2. Konstanten + 3. Zusammengesetzte Terme + 4. Beispiele und Übungen + 2. Listen und ihre Verarbeitung + 1. Stadt-Land-Fluss + 2. Kopf-Rest-Methode + 3. Rekursive Verarbeitung von Listen + 4. Akkumulatormethode + 5. Beispiele und Übungen + 6. Das Bootstourproblem + 3. Zahlen und ihre Verarbeitung + 1. Stadt-Land-Fluss + 2. Vergleiche + 3. Berechnungen + 4. Beispiele und Übungen + 4. Ausgabe von Daten + 4. Deklarative Programmierung + 1. Ein Graphenproblem + 2. Problemlösestrategien + 3. Lösung des Graphenproblems + 1. Lösung eines vereinfachten Problems + 2. Exkurs - Tiefensuche in Graphen + 3. Aufsammeln von Wegknoten + 4. Aufsammeln von Wegknoten in einer Akkumulatorliste + 5. Lösung des Problems + 4. Anwendungen zum Graphenproblem + 1. Das Tratsch-Problem der Chatoren + 2. Ein Umfüllproblem