Home
 

Test 1

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]

nextnextupuppreviouspreviouscontentscontents
Next:Test 2Up:Proseminar-TestsPrevious:Proseminar-Tests
Ronald Blaschke
1998-04-19