Deklarative ProgrammierungIn diesem KapitelFunktionale Programmierung mit PythonFunktionale Programmierung mit ElmLogische ProgrammierungqStartseite8. Deklarative Programmierung1. 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 Abbildungen2. Funktionale Programmierung mit Elm+1. Vorwort+1. Warum funktional programmieren?+2. Lokale Installation+3. Online-Alternativen+4. REPL+5. Mögliche Wege durch das Kapitel+2. Programmierung mit Elm+1. Daten und ihre Verarbeitung+1. Beispiel - WandtattooEin BerechnungsproblemBerechnungen in der REPLDas Kostenberechnungsproblem+2. Experimente - Int und FloatZwei Sorten von ZahlenRechenoperationenTypumwandlungenVordefinierte Funktionen+3. Beispiel - VerschlüsselungZwei einfache VerschlüsselungsverfahrenExperimente in der REPL zum Caesar-VerfahrenExperimente in der REPL zum UmkehrverfahrenRückblick und Ausblick+4. Experimente - Char und StringZeichen und ZeichenkettenVordefinierte Funktionen zur Verarbeitung von ZeichenVordefinierte Funktionen zur Verarbeitung von Zeichenketten+5. Beispiel - SchaltjahreEin BerechnungsproblemExperimente in der REPL+6. Experimente - BoolWahrheitswerteLogische OperatorenVordefinierte boolsche Funktionen+7. Vertiefung - Operatorrangfolge+8. Übungen+9. Fachkonzept - Datentyp+10. Fachkonzept - Vordefinierte Funktion+11. Fachkonzept - Ausdruck+2. Funktionen als Programmierbausteine+1. Beispiel - WandtattooModellierung einer FunktionImplementierung einer FunktionEine weitere FunktionTypangaben+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 - NotenlisteProblemsituationVerwaltung der DatenDaten hinzufügenVerarbeitung mit vordefinierten FunktionenListen von ListenFunktionen höherer OrdnungPartielle Funktionsanwendung+2. Beispiel - CaesarProblemsituationZeichenketten als ListenFunktionen höherer OrdnungPartielle Funktionsanwendung+3. Übungen+4. Fachkonzept - Liste+5. Fachkonzept - Funktion höherer Ordnung+4. Gestaltung von Funktionsausdrücken+1. Beispiel - VerschlüsselungEin neues VerfahrenEntwicklung einer FunktionsdefinitionAnalyse der FunktionsdefinitionVerwendung lokaler KonstantenVerwendung des Pipe-Operators+2. Übungen+3. Fachkonzept - let-Ausdrücke+4. Fachkonzept - Pipe-Operator+5. Fallunterscheidungen+1. Beispiel - EintrittspreiseProblemsituationEine FallunterscheidungGeschachtelte FallunterscheidungenMehrfachauswahl mit einem Musterabgleich+2. Übungen+3. Fachkonzept - Fallunterscheidung+4. Fachkonzept - Musterabgleich+6. Erzeugung von Funktionen+1. Anonyme FunktionenFunktionen mit NamenFunktionen ohne Namen+2. Partiell angewandte FunktionenPartielle FunktionsanwendungIterierte Funktionsanwendung+3. Komposition von FunktionenDer Pipe-OperatorDer Kompositionsoperator+4. Übungen+5. Fachkonzept - anonyme Funktion+6. Fachkonzept - Currying+7. Fachkonzept - Funktionskomposition+7. Verarbeitung von Datensätzen+1. Beispiel - MailadressenProblemsituationVerwaltung als RecordVerwendung von AliasnamenZugriff auf die AttributeAutomatisch erzeugte FunktionenVerarbeitung von Datensätzen mit AttributzugriffenVerarbeitung von Datensätzen über MustererkennungAktualisierung von DatensätzenGeschachtelte Datensätze+2. Beispiel - MetadatenProblemsituationVerwaltung als TupelVerarbeitung von Tupeln+3. Übungen+4. Fachkonzept - Datensatz als Record+5. Fachkonzept - Datensatz als Tupel+8. Erzeugung von Datentypen+1. Beispiel - BegrüßungProblemsituationDefinition eines neuen DatentypsImplementierungExperimente in der REPL+2. Beispiel - InterpreterProblemsituationVerwaltung der DatenDefinition eines neuen DatentypsAusführung von BefehlenAutomatisierung der BefehlsausführungEin wiederhole-BefehlErweiterungen+3. Übungen+4. Fachkonzept - Typdefinition+9. Fehlerbehandlung+1. Beispiel - BenutzereingabenProblemsituationImplementierungsvorschlagUmwandlung von ZahlenDer Datentyp MaybeVerbesserte Funktion+2. Übungen+3. Fachkonzept - Fehlerbehandlung+10. Rekursion+1. Beispiel - Türme von HanoiProblemsituationLösung für kleine TürmeAllgemeine StrategieImplementierung in ElmZusammenfassung+2. Beispiel - BegrüßungenProblemsituationBeispielrechnungenVerallgemeinerungAufwandsbetrachtungEndrekursion+3. Beispiel - Eigene map-FunktionProblemsituationProblempräzisierungMustererkennungImplementierung von mapVerschlüsselung+4. Beispiel - Wege im GitternetzProblemsituationProblempräzisierungProblemreduktionRekursive FunktionAufwandsbetrachtungAlternative Berechnungen+5. Übungen - Verarbeitung von Zahlen+6. Übungen - Verarbeitung von Zeichenketten+7. Fachkonzept - Rekursion+8. Fachkonzept - Endrekursion+3. Dynamische Webseiten mit Elm+1. Hallo Elm+1. HTML-Grundlagen+2. Hallo Elm - onlineellie-app.comAnalyseTipps+3. Hallo Elm - lokalelm initelm makeHot reloading+4. Übungen+2. Caesar IZiele und VoraussetzungenElementknotenListen von KnotenMehrere ElementknotenGeheimtext berechnenview-FunktionDatentypenVerarbeitung von ListenÜbungen+3. NotenauswertungZiele und VoraussetzungenEinzelnoteGesamtlisteAuswertungÜbungen+4. Sport-ErgebnisseZiele und VoraussetzungenDatenstrukturGrundstrukturTabellendarstellungAuswertungÜbungen+5. Caesar IIZiele und VoraussetzungenFertiges ProgrammElm - ArchitekturTEA - ImplementierungTexteingabeErweiterungenÜbungen+6. Nim-Spiel+1. Fertiges Programm+7. Umgang mit Fehlern+8. Zufall+9. Subscriptions+10. Flags+4. Nachwort3. 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