next up previous contents
Next: Test 2 Up: Proseminar-Tests Previous: Proseminar-Tests

Test 1

Die folgenden Aufgaben präsentieren Haskell-Ausdrücke, für die Sie jeweils den Wert angegeben sollen oder aber ob ein Syntax-, Typ- oder Laufzeitfehler vorliegt. (Vermerken Sie Ihre Antwort bitte auf diesem Blatt hinter dem Ausdruck und verwenden Sie für die drei Fehlerfälle die Abkürzungen SF, TF, LF !) Es wird der übliche Kontext (standard prelude) angenommen.

1.
 max 3 4                        negate 3

3 `div` 4 div 3 4
div 3 -4 2**3 - 4
True && (1/0 == 0) False == (2 <= 3)
"A" = 'A' "A" == 'A'
"ABC" == ['A','B','C']


let x = 'A' in x:"BC" let x = "A" in x == x
let x = "A" in x /= x
let x = "A" in not x == x
let x = "A" in not (x == x)

2.
Zur Erinnerung: Die Funktion max liefert den größeren zweier Zahlenwerte, und die polymorphe Identitätsfunktion id ist definiert durch id:: a->a und id x = x.

Untersuchen Sie:

 (id.max)3 2          (id.max 3) 2          id.(max 3) 2

id max 3 2 id (max 3) 2 (id max) 3 2
(id max 3) 2 id (max 3 2) max id 3 2

3.
Die Funktion f sei definiert als:

 f:: (Int->Int->Int)->Int->[Int]->Int

f g e [] = e
f g e (x:xs) = g x (f g e xs)

Untersuchen Sie:

 f max 5 [4,3,2,1]

f div 1 [5,4,3,2]


next up previous contents
Next: Test 2 Up: Proseminar-Tests Previous: Proseminar-Tests
Ronald Blaschke
1998-04-19