summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-06-16 11:15:38 +0000
committeraarne <aarne@cs.chalmers.se>2008-06-16 11:15:38 +0000
commitea31c1e63ba137b943f7fd5e0ffe91cd64673875 (patch)
treeda25c50e9d0b0052eb8cbdf435b054af229fef25
parent543ef3531ad4591dd6e6e3c88c8f734f983c875a (diff)
new languages in resource Make; moved GF-specific stuff from Quiz
-rw-r--r--src-3.0/GF/Command/Commands.hs15
-rw-r--r--src-3.0/PGF/Quiz.hs25
2 files changed, 23 insertions, 17 deletions
diff --git a/src-3.0/GF/Command/Commands.hs b/src-3.0/GF/Command/Commands.hs
index b68ad7470..f586125b2 100644
--- a/src-3.0/GF/Command/Commands.hs
+++ b/src-3.0/GF/Command/Commands.hs
@@ -454,3 +454,18 @@ allCommands pgf = Map.fromList [
-- ps -f -g s returns g (f s)
stringOps opts s = foldr app s (reverse (map prOpt opts)) where
app f = maybe id id (stringOp f)
+
+translationQuiz :: PGF -> Language -> Language -> Category -> IO ()
+translationQuiz pgf ig og cat = do
+ tts <- translationList pgf ig og cat infinity
+ mkQuiz "Welcome to GF Translation Quiz." tts
+
+morphologyQuiz :: PGF -> Language -> Category -> IO ()
+morphologyQuiz pgf ig cat = do
+ tts <- morphologyList pgf ig cat infinity
+ mkQuiz "Welcome to GF Morphology Quiz." tts
+
+-- | the maximal number of precompiled quiz problems
+infinity :: Int
+infinity = 256
+
diff --git a/src-3.0/PGF/Quiz.hs b/src-3.0/PGF/Quiz.hs
index a9aba51cf..7f5bae201 100644
--- a/src-3.0/PGF/Quiz.hs
+++ b/src-3.0/PGF/Quiz.hs
@@ -13,9 +13,8 @@
--------------------------------------------------------------------------------
module PGF.Quiz (
- translationQuiz,
+ mkQuiz,
translationList,
- morphologyQuiz,
morphologyList
) where
@@ -31,13 +30,15 @@ import Data.List (nub)
-- translation and morphology quiz. AR 10/5/2000 -- 12/4/2002
-translationQuiz :: PGF -> Language -> Language -> Category -> IO ()
-translationQuiz pgf ig og cat = do
- tts <- translationList pgf ig og cat infinity
+-- generic quiz function
+
+mkQuiz :: String -> [(String,[String])] -> IO ()
+mkQuiz msg tts = do
let qas = [ (q, mkAnswer as) | (q,as) <- tts]
- teachDialogue qas "Welcome to GF Translation Quiz."
+ teachDialogue qas msg
-translationList :: PGF -> Language -> Language -> Category -> Int -> IO [(String,[String])]
+translationList ::
+ PGF -> Language -> Language -> Category -> Int -> IO [(String,[String])]
translationList pgf ig og cat number = do
ts <- generateRandom pgf cat >>= return . take number
return $ map mkOne $ ts
@@ -45,12 +46,6 @@ translationList pgf ig og cat number = do
mkOne t = (norml (linearize pgf ig t), map (norml . linearize pgf og) (homonyms t))
homonyms = nub . parse pgf ig cat . linearize pgf ig
-morphologyQuiz :: PGF -> Language -> Category -> IO ()
-morphologyQuiz pgf ig cat = do
- tts <- morphologyList pgf ig cat infinity
- let qas = [ (q, mkAnswer as) | (q,as) <- tts]
- teachDialogue qas "Welcome to GF Morphology Quiz."
-
morphologyList :: PGF -> Language -> Category -> Int -> IO [(String,[String])]
morphologyList pgf ig cat number = do
ts <- generateRandom pgf cat >>= return . take (max 1 number)
@@ -70,7 +65,3 @@ mkAnswer as s = if (elem (norml s) as)
norml :: String -> String
norml = unwords . words
--- | the maximal number of precompiled quiz problems
-infinity :: Int
-infinity = 256
-