Update of exercises

master
Thomas Smits 2024-03-11 10:41:23 +01:00
parent f79e3662c0
commit 04dda27e57
16 changed files with 32 additions and 16 deletions

View File

@ -1,7 +1,8 @@
# Lösung: Erste Schritte
```$2#!/usr/bin/env -S clojure -M
```clojure
#!/usr/bin/env -S clojure -M
(println "Produktname: ")
(def produkt (read-line))

View File

@ -1,7 +1,8 @@
# Lösung: Maps: Lagerverwaltung
```$2#!/usr/bin/env -S clojure -M
```clojure
#!/usr/bin/env -S clojure -M
(def lager {
:PS5 10

View File

@ -1,7 +1,8 @@
# Lösung: Kontrolltrukturen: Lagerverwaltung, Teil 2
```$2#!/usr/bin/env -S clojure -M
```clojure
#!/usr/bin/env -S clojure -M
(def lager {
:PS5 10

View File

@ -1,7 +1,8 @@
# Lösung: Map und Reduce: Gewinnermittlung für die Abzock GmbH
```$2#!/usr/bin/env -S clojure -M
```clojure
#!/usr/bin/env -S clojure -M
(def verkaeufe-stueckzahlen {
:PS5 [ 10, 5, 8, 13, 22, 42, 110 ],

View File

@ -1,7 +1,8 @@
# Lösung: Multi-Arity-Funktion
```$2(defn my-average
```clojure
(defn my-average
([a b] (/ (+ a b) 2))
([a b c d] (/ (+ a b c d) 4))
([a b c d e f] (/ (+ a b c d e f) 6)))

View File

@ -1,7 +1,8 @@
# Lösung: Funktion als Rückgabewert
```$2(defn plus-n-fn
```clojure
(defn plus-n-fn
"Liefert eine Funktion zurück, die genau ein
Argument nimmt und dieses Argument zu
`n` addiert."

View File

@ -1,7 +1,8 @@
# Lösung: apply und Funktionen als Übergabewerte
```$2(defn triple-apply
```clojure
(defn triple-apply
"Wendet die Funktion `f` drei mal hintereinander auf die Argumente
`args` an und gibt die Summe der Ergebnisse zurück."
[f & args]

View File

@ -1,7 +1,8 @@
# Lösung: Vor- und Nachbedingung
```$2(defn sqrt [n]
```clojure
(defn sqrt [n]
{ :pre [(>= n 0)]
:post [(> % 0)]}
(Math/sqrt n))

View File

@ -1,7 +1,8 @@
# Lösung: Tail-Recursion
```$2(defn prod-recur
```clojure
(defn prod-recur
"Berechnet das Produkt einer Reihe von Zahlen `zahlen` unter
Verwendung von loop und recur."
[zahlen]

View File

@ -1,7 +1,8 @@
# Lösung: Was hoppelt den da?
```$2#!/usr/bin/env -S clojure -M
```clojure
#!/usr/bin/env -S clojure -M
(def generationen 14)

View File

@ -1,7 +1,8 @@
# Lösung: cond
```$2(defn test-positive
```clojure
(defn test-positive
"Vergleicht eine Zahl mit 0 gibt einen Hinweis-Text.
Der Hinweistext erklärt, ob die Zahl `number` größer, kleiner
oder gleich zur Zahl 0 ist."

View File

@ -1,7 +1,8 @@
# Lösung: Ausnahmebehandlung
```$2(defn number-formatter
```clojure
(defn number-formatter
"Konvertiert den String `string` in einen Integer-Wert.
Wenn die Konvertierung fehlschlägt, wird -1 zurück
gegeben."

View File

@ -1,7 +1,8 @@
# Lösung: reduce
```$2(defn prod-reduce
```clojure
(defn prod-reduce
"Berechnet das Produkt einer Reihe von Zahlen `zahlen` unter
Verwendung von reduce."
[zahlen]

View File

@ -1,7 +1,8 @@
# Lösung: mapping und cycle
```$2(defn map-cycle
```clojure
(defn map-cycle
"Erzeugt eine unendliche Sequenz der Zahlen `zahlen`
und berechnet für jede Zahl deren Doppeltes und zieht dann
1 ab. Vom Ergebnis werden `n` Elemente zurück

View File

@ -1,7 +1,8 @@
# Lösung: take-while
```$2(defn below-zero
```clojure
(defn below-zero
"Läuft über `data` und gibt die Elemente bis zum ersten
Auftreten eines Wertes >= 0 zurück."
[data]

View File

@ -1,7 +1,8 @@
# Lösung: filter
```$2(defn filter-positive
```clojure
(defn filter-positive
"Läuft über `data` und gibt die Elemente, deren Wert >= 0 ist zurück."
[data]
(filter #(>= % 0) data))