Funktionale Sprachen sind anders als imperative. Das bringt zum einen konkrete Vorteile, zum anderen schult es, die Art zu denken und zu programmieren. Funktionale Konzepte sind zum Teil auch in imperativen Sprachen zu finden, z. B. lambda, map oder reduce in Python. Am Beispiel von Clojure sollen Vorteile und Denkweisen demonstriert werden. Mögliche individuelle Nachteile werden im Gespräch miteinander herausgearbeitet. Es wird interaktiv gearbeitet, Theorie und Praxis wechseln sich ab. Besonders wichtig für ein eindrucksvolles Lernerlebnis ist dabei der Austausch untereinander.
Schwerpunkte
Grundlagen von Clojure
- Typen
- Datenstrukturen
- Kontrollstrukturen
- Dateneingabe und -ausgabe
Konzepte
- Rekursion
- Funktionen höherer Ordnung
- Bedarfsauswertung und strikte Auswertung
- Purität, Determinismus und Totalität (referenzielle Transparenz)
Weiterführende Themen
- Testing
- Funktionale Konzepte in imperativen Sprachen
- ClojureScript
- Tools
- "Hammock-driven development", "Simple made easy"