• Keine Ergebnisse gefunden

Typ-basiertes Programmieren und Schließen in Funktionalen Sprachen

N/A
N/A
Protected

Academic year: 2022

Aktie "Typ-basiertes Programmieren und Schließen in Funktionalen Sprachen"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

5. ¨Ubungsblatt

Typ-basiertes Programmieren und Schließen in Funktionalen Sprachen

Jun.-Prof. Dr. Janis Voigtl¨ ander / Dipl.-Math. Daniel Seidel Wintersemester 2009/10

Aufgabe 21

Beweisen Sie, dass wenn Funktionen get,compl und inv erf¨ullen dass:

1. inv (get s,compl s) =s

2. wenn inv (v,c) definiert, dannget (inv (v,c)) =v 3. wenn inv (v,c) definiert, danncompl (inv (v,c)) =c dann mit der Definition

put s v0 =inv (v0,compl s) auch folgende Eigenschaften erf¨ullt sind:

4. put s (get s) =s

5. wenn put s v definiert, dann get (put s v) =v

6. wenn put s v definiert, dann put (put s v) (get s) = s

7. wenn put s v und put (put s v) v0 definiert, dann put (put s v) v0 =

put s v0 3

Aufgabe 22

Gegeben sei die Typdefinition

dataLense a b =Lense {get ::a →b,put ::a →b →a} Definieren Sie eine Funktion

lense comp::Lense a b →Lense b c →Lense a c

1

(2)

so dass f¨url3 =lense comp l1 l2 stets gilt, dass wenn (get l1)/(put l1) und (get l2)/(put l2) jeweils die Eigenschaften 4.–7. aus Aufgabe 21 erf¨ullen, dies auch f¨ur (get l3)/(put l3) gilt, und dar¨uber hinaus (get l3) = (get l2)◦

(get l1). 3

Aufgabe 23

Gegeben seien get :: [a]→[a] und folgende Definitionen:

compl :: [a]→(Int,[(Int,a)]) compl s =

let

n = (length s)−1 t = [0. .n]

g =zip t s

g0 =filter (λ(i, )→notElem i (get t))g in(n + 1,g0)

inv :: ([a],(Int,[(Int,a)]))→[a] inv (v0,(n+ 1,g0)) =

let

t = [0. .n] h =zip (get t)v0 h0 =h ++g0

inmap (λi →fromJust (lookup i h0))t

Versuchen Sie zu argumentieren, dass get, compl und inv die Bedingungen

1.–3. aus Aufgabe 21 erf¨ullen. 3

2

Referenzen

ÄHNLICHE DOKUMENTE

Praktische Informatik 3: Funktionale Programmierung Vorlesung 10 vom 18.12.2018: Aktionen und Zustände.. Christoph Lüth Universität Bremen

Jede Liste wird intern durch eine leere Liste abgeschlossen. Jede Liste wird intern durch Jede Liste wird intern durch eine leere

* Werden Vektoren unterschiedlicher l¨ ange ¨ ubergeben, so soll eine aussagekr¨ aftige Fehlermeldung die Folge seien.. Hinweis: Die mit * gekennzeichneten Punkte

In dem Originalartikel Systems of Conservation Laws wird eine andere Voraussetzung angegeben.. Lesen Sie den entspre- chenden Teil des Artikels und geben Sie die dort

Zeigen Sie, dass für ein beliebiges OrAnd Problem ein „äquivalentes“ SumProd Problem konstruiert werden kann (ohne dabei ein MinSum Problem als Zwischenschritt zu verwenden) so,

Zeigen Sie, dass für ein beliebiges OrAnd Problem ein „äquivalentes“ SumProd Problem konstruiert werden kann (ohne dabei ein MinSum Problem als Zwischenschritt zu verwenden) so,

In dieser Aufgabe betrachten wir eine spezielle Erweiterung der bereits bekannten Schr¨ odingergleichung, bei der der Hamiltonoperator zus¨ atzlich eine Matrixstruktur und

Aus der Vorlesung ist bekannt, dass L¨ osungen der Schr¨ odingergleichung und ihre ersten Ableitungen die Stetigkeitsbedingungen erf¨ ullen m¨ ussen.. Im Falle von Potentialen,