• Keine Ergebnisse gefunden

Übungen Funktionale Programmierung (in Clojure) Serie 10

N/A
N/A
Protected

Academic year: 2021

Aktie "Übungen Funktionale Programmierung (in Clojure) Serie 10"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. Dr. Burkhardt Renz TH Mittelhessen

Funktionale Programmierung (in Clojure) Übungen Serie 10

Übungen Funktionale Programmierung (in Clojure) Serie 10

1. Konten in Clojure

(a) Schreiben Sie eine Funktion (make-account name no), die ein Konto für den Namennameund die Kontonummernoerzeugt.

Das Konto soll so konstruiert sein, dass sichergestellt wird, dass der Saldo des Kontos niemals negativ wird.

(b) Schreiben Sie eine Funktion (deposit account amount), die auf dem Konto acountden Betragamountzubucht, sowie eine Funktion(withdraw account amount), die ihn abbucht.

(c) Schreiben Sie eine Funktion(balance account), die den Saldo des Kontos aus- gibt.

(d) Schreiben Sie eine Funktion (transfer acc1 acc2 amount), die amount von Kontoacc1aufacc2 überweist.

2. Eine Bank in Clojure

(a) Repräsentieren Sie die Konten einer Bank in einer geeigneten Datenstruktur in Clojure. Dabei sollen die Kontonummern eindeutig sein.

(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 der Kontonummer.

(c) Schreiben Sie eine Funktion (bank-transfer bank no1 no2 amount), die in der Bank den Betragamount vom Konto mit der Nummerno1auf das mit Kon- tonummerno2überweist.

(d) Schreiben Sie eine Funktion(deposits bank), die die Summe der Guthaben bei der Bank ermittelt.

3. Konkurrierende Zugriffe in Java

(a) Konstruieren Sie Beispiele der Verwendung folgenden Java-Codes, die zeigen, dass man es so nicht machen sollte. Das Beispiel stammt aus dem Buch „Java Concur- rency in Practice“ von Brian Goetz et al.

/*** UnsafeSequence

** @author Brian Goetz and Tim Peierls

*/

@NotThreadSafe

public class UnsafeSequence { private int value;

/*** Returns a unique value.

public int getNext() {*/

Wintersemester 2014/15 1

(2)

Prof. Dr. Burkhardt Renz TH Mittelhessen

Funktionale Programmierung (in Clojure) Übungen Serie 10 return value++;

} }

(b) Schreiben Sie entsprechenden Code in Clojure und überprüfen Sie Ihre Szenarien aus (a) damit.

Rev 1.1 – 25. November 2014

Wintersemester 2014/15 2

Referenzen

ÄHNLICHE DOKUMENTE

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

Was ergeben die folgenden Ausdrücke in der Repl, eingegeben in der vorgegebenen Rei- henfolge.. Burkhardt Renz

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

Programmieren Sie eine Funktion (gcd n m), die mit dem Euklidischen Algorithmus den größten gemeinsamen Teiler (greatest common divisor ) der natürlichen Zahlen n und m berechnet..

Schreiben Sie eine Funktion (freq coll), die wie frequencies eine Map der verschie- denen Elemente einer Kollektion mit der Zahl ihres Vorkommens ermittelt. Verwenden Sie

Auch die Eulersche Zahl e kann durch einen Kettenbruch approzimiert werden, nämlich durch den Kettenbruch mit folgender Folge der a i 4 :.. [2; 1, 2, 1, 1, 4, 1, 1,

(a) Schreiben Sie eine „Factory-Funktion“ für komplexe Zahlen, basierend auf einer Implementierung als Vektor aus Real- und Imaginärteil.. (b) Schreiben Sie eine Multimethode (add x