Direkt zum Inhalt | Direkt zur Navigation

Sektionen
Benutzerspezifische Werkzeuge

Korrekturen Übung 04

Im Übungsblatt 4 wurden Module aus dem package random-extras benutzt, was sich wohl nicht

überall problemlos installieren lässt. Auch gab es typos (Exps statt Exp) in Abschnitt 3. Ich habe

eine korrigierte Version hochgeladen. Danke an Vitaly und Matthias für die Hinweise!

Hier die diffs für Uebung04.lhs :

diff --git a/exercises/Uebung04.lhs b/exercises/Uebung04.lhs
index e3babdf..a78677e 100644
--- a/exercises/Uebung04.lhs
+++ b/exercises/Uebung04.lhs
@@ -26,9 +26,7 @@
 
 > module Uebung4 where
 > import Data.List (intercalate)
-> import Data.Random
-> import Data.Random.Source.DevRandom
-> import Data.Random.Extras
+> import System.Random (randomRIO)
 
 \section{Binärbäume}
 
@@ -178,12 +176,12 @@ die eine mit '(' und ')') korrekt geklammerte String-Darstellung,
 
 2. Schreiben Sie eine Funktion
 
-< eval :: (Num a) => Exps a -> a
+< eval :: (Num a) => Exp a -> a
 
 die den Wert eines Ausdrucks nach den üblichen Regeln der Arithmetik
 berechnet! (z.B. |eval exp1 = -31|) ({\bf 1pt})
 
-3. Modifizieren Sie |Ops| und |Exps| so, dass auch Quotienten
+3. Modifizieren Sie |Ops| und |Exp| so, dass auch Quotienten
 dargestellt werden können und implementieren Sie eine Evaluierungsfunktion
 
 < eval2 :: (Integral a) => Exp2 a -> Maybe a
@@ -374,7 +372,8 @@ werden
 <          where
 <            winMoves    = pMoves (canWin p) (B b)
 <            remisMoves  = pMoves (canEnforceRemis p) (B b)
-<            pickMove bs = runRVar (choice (map Just bs)) DevRandom
+<            pickMove bs = randomRIO (0, length bs - 1) >>= return . Just . (bs !!)
+
 
 und schliesslich können wir Tic-Tac-Toe spielen:
 
@@ -409,8 +408,8 @@ und schliesslich können wir Tic-Tac-Toe spielen:
 <          else getPlayerMove p b
 <      chooseMyMove p b = do
 <        putStrLn "Let me think..."
-<        b' <- goodMove (other p) (B b)
-<           where other X = O; other O = X
+<         b' <- let other X = O in
+<               let other O = X in goodMove (other p) (B b)
 <        case b' of
 <          Nothing -> finMessage b "Ok, you win."
 <          (Just b'') -> play p b''
(END)

Artikelaktionen
Auf einen Blick
Lehrform Seminar
Empfohlen ab FS 3
Voraussetzungen Grundkenntnisse der Informatik aus den ersten 4 Semestern, vor allen aus den Bereichen Theoretische Informatik und Logik. Teilnahme an der Veranstaltung "Automatisierte Logik und Programmierung" ist vorteilhaft, aber nicht notwendig.
Benotet Ja
Punkte gesamt 3
davon praktisch 3
Sprache deutsch/englisch
Fremdhörer zugelassen? Nein
Teilgebiete Theoretische Informatik(2000), Praktische Informatik(3000), Wahlfrei(7000)
Studiengang Bachelor, Master
Belegung via PULS