diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-06-16 11:15:38 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-06-16 11:15:38 +0000 |
| commit | ea31c1e63ba137b943f7fd5e0ffe91cd64673875 (patch) | |
| tree | da25c50e9d0b0052eb8cbdf435b054af229fef25 /src-3.0 | |
| parent | 543ef3531ad4591dd6e6e3c88c8f734f983c875a (diff) | |
new languages in resource Make; moved GF-specific stuff from Quiz
Diffstat (limited to 'src-3.0')
| -rw-r--r-- | src-3.0/GF/Command/Commands.hs | 15 | ||||
| -rw-r--r-- | src-3.0/PGF/Quiz.hs | 25 |
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 - |
