• Keine Ergebnisse gefunden

Übungen Programmieren in Clojure Serie 1

N/A
N/A
Protected

Academic year: 2021

Aktie "Übungen Programmieren in Clojure Serie 1"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. Dr. Burkhardt Renz TH Mittelhessen

Programmieren in Clojure Übungen Serie 1

Übungen Programmieren in Clojure Serie 1

1. Präfix-Notation

Formulieren Sie folgende Ausdrücke in der Präfix-Notation1 und werten Sie sie in der Repl aus.

(a) 2 + 2 + 2 + 3 (b) (2 * (3 + 4 - 2*2)) (c) (42 - 3) - 39 (d) 42 - (3 - 39)

(e) 2 + 1 (ohne die Zeichen+und-zu verwenden) (f) true and false or true

(g) (1 = 1) or (1 != 1) 2. Ausdrücke in der Repl

Was ergeben die folgenden Ausdrücke in der Repl, eingegeben in der vorgegebenen Rei- henfolge. Bitte überlegen Sie zuerst im Kopf, was das Ergebnis sein muss und probieren Sie erst dann aus.

user=>10 user=>(+ 5 3 4) user=>(- 9 1) user=>(/ 6 2) user=>(/ 7 2) user=>(/ 8 6)

user=>(+ (* 2 4) (- 4 6)) user=>(def a 3)

user=>(def b (+ a 1)) user=>(+ a b (* a b)) user=>(= a b)

user=>(if (and (> b a) (< b (* a b))) b a) user=>(cond

(= a 4) 6

(= b 6) (+ 6 7 a) :else 25)

1LISP = „Lots of Irritating Superfluous Parentheses“ (Wikipedia)

Wintersemester 2017/18 1

(2)

Prof. Dr. Burkhardt Renz TH Mittelhessen

Programmieren in Clojure Übungen Serie 1

3. Datenstrukturen in der Repl

Was ergeben die folgenden Ausdrücke in der Repl? Bitte überlegen Sie zuerst im Kopf, was das Ergebnis sein muss und probieren Sie erst dann aus.

user=>[1 1 1]

user=>(1 1 1) user=>[+ 1 2]

user=>(+ 1 2)

user=>[(+ 1 2) (inc 3)]

user=>(first [1 2 3 4 5]) user=>(rest [1 2 3 4 5]) user=>#{1 1 1}

user=>#{1 2 3}

user=>{1 \a 2 \b 3 \c}

user=>{1 a 2 b 3 c}

user=>{1 \a 2}

4. Daten = Code

(a) Wie kann man die Liste(+ 2 3)als eine Liste von Werten behandeln?

(b) Und wie kann man eine Liste (als Daten) mit den Elementen+,2und3als Code ausführen?

Rev 4.0 – 11. August 2017

Wintersemester 2017/18 2

Referenzen

ÄHNLICHE DOKUMENTE

Schreiben Sie eine Funktion max-quad, die drei Zahlen als Argumente akzeptiert und die Summe der Quadrate der beiden größeren Zahlen zurückgibt..

Funktionale Programmierung (in Clojure) Übungen Serie 5 (a) Schreiben Sie eine rekursive Funktion (pascal row index), die die Pascalsche Zahl in der Zeile row und Position

Wenn f eine numerische Funktion und n eine positive ganze Zahl ist, dann können wir die n-fach wiederholte Anwendung von f bilden, die als Funktion von x mit dem Wert f (f(. f

(a) Schreiben Sie eine Funktion vsquare, die aus einem Vektor einen anderen Vektor erstellt, der die Quadrate der Elemente enthält.. (b) Schreiben Sie eine Funktion vinc, die aus

Verwenden Sie Folgen in Clojure, um eine Lösung dieser Aufgabe zu programmieren.. Fibonacci

(b) Programmieren Sie eine Multimethode (area ...), die die Fläche eines Recht- ecks oder eines Kreises berechnet.. Flächenberechnung mit Records

(b) Schreiben Sie eine Funktion (add-account bank account), die dem Bestand der Konten der Bank ein weiteres Konto hinzufügt.. Beachten Sie die Eindeutigkeit

Eine Bank bezahlt Zinsen gestaffelt nach dem Guthaben: 1% bis 1000€, 1,25% bis 2000€ und 1,5% über 2000€.. Schreiben Sie eine Funktion, die zu einem Guthaben g den Jahreszins