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 # Lösung: Erste Schritte
```$2#!/usr/bin/env -S clojure -M ```clojure
#!/usr/bin/env -S clojure -M
(println "Produktname: ") (println "Produktname: ")
(def produkt (read-line)) (def produkt (read-line))

View File

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

View File

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

View File

@ -1,7 +1,8 @@
# Lösung: Map und Reduce: Gewinnermittlung für die Abzock GmbH # 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 { (def verkaeufe-stueckzahlen {
:PS5 [ 10, 5, 8, 13, 22, 42, 110 ], :PS5 [ 10, 5, 8, 13, 22, 42, 110 ],

View File

@ -1,7 +1,8 @@
# Lösung: Multi-Arity-Funktion # Lösung: Multi-Arity-Funktion
```$2(defn my-average ```clojure
(defn my-average
([a b] (/ (+ a b) 2)) ([a b] (/ (+ a b) 2))
([a b c d] (/ (+ a b c d) 4)) ([a b c d] (/ (+ a b c d) 4))
([a b c d e f] (/ (+ a b c d e f) 6))) ([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 # Lösung: Funktion als Rückgabewert
```$2(defn plus-n-fn ```clojure
(defn plus-n-fn
"Liefert eine Funktion zurück, die genau ein "Liefert eine Funktion zurück, die genau ein
Argument nimmt und dieses Argument zu Argument nimmt und dieses Argument zu
`n` addiert." `n` addiert."

View File

@ -1,7 +1,8 @@
# Lösung: apply und Funktionen als Übergabewerte # 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 "Wendet die Funktion `f` drei mal hintereinander auf die Argumente
`args` an und gibt die Summe der Ergebnisse zurück." `args` an und gibt die Summe der Ergebnisse zurück."
[f & args] [f & args]

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,7 +1,8 @@
# Lösung: filter # 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." "Läuft über `data` und gibt die Elemente, deren Wert >= 0 ist zurück."
[data] [data]
(filter #(>= % 0) data)) (filter #(>= % 0) data))