mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 19:42:50 -06:00
new languages in resource Make; moved GF-specific stuff from Quiz
This commit is contained in:
@@ -454,3 +454,18 @@ allCommands pgf = Map.fromList [
|
|||||||
-- ps -f -g s returns g (f s)
|
-- ps -f -g s returns g (f s)
|
||||||
stringOps opts s = foldr app s (reverse (map prOpt opts)) where
|
stringOps opts s = foldr app s (reverse (map prOpt opts)) where
|
||||||
app f = maybe id id (stringOp f)
|
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
|
||||||
|
|
||||||
|
|||||||
@@ -13,9 +13,8 @@
|
|||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
module PGF.Quiz (
|
module PGF.Quiz (
|
||||||
translationQuiz,
|
mkQuiz,
|
||||||
translationList,
|
translationList,
|
||||||
morphologyQuiz,
|
|
||||||
morphologyList
|
morphologyList
|
||||||
) where
|
) where
|
||||||
|
|
||||||
@@ -31,13 +30,15 @@ import Data.List (nub)
|
|||||||
|
|
||||||
-- translation and morphology quiz. AR 10/5/2000 -- 12/4/2002
|
-- translation and morphology quiz. AR 10/5/2000 -- 12/4/2002
|
||||||
|
|
||||||
translationQuiz :: PGF -> Language -> Language -> Category -> IO ()
|
-- generic quiz function
|
||||||
translationQuiz pgf ig og cat = do
|
|
||||||
tts <- translationList pgf ig og cat infinity
|
|
||||||
let qas = [ (q, mkAnswer as) | (q,as) <- tts]
|
|
||||||
teachDialogue qas "Welcome to GF Translation Quiz."
|
|
||||||
|
|
||||||
translationList :: PGF -> Language -> Language -> Category -> Int -> IO [(String,[String])]
|
mkQuiz :: String -> [(String,[String])] -> IO ()
|
||||||
|
mkQuiz msg tts = do
|
||||||
|
let qas = [ (q, mkAnswer as) | (q,as) <- tts]
|
||||||
|
teachDialogue qas msg
|
||||||
|
|
||||||
|
translationList ::
|
||||||
|
PGF -> Language -> Language -> Category -> Int -> IO [(String,[String])]
|
||||||
translationList pgf ig og cat number = do
|
translationList pgf ig og cat number = do
|
||||||
ts <- generateRandom pgf cat >>= return . take number
|
ts <- generateRandom pgf cat >>= return . take number
|
||||||
return $ map mkOne $ ts
|
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))
|
mkOne t = (norml (linearize pgf ig t), map (norml . linearize pgf og) (homonyms t))
|
||||||
homonyms = nub . parse pgf ig cat . linearize pgf ig
|
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 -> Language -> Category -> Int -> IO [(String,[String])]
|
||||||
morphologyList pgf ig cat number = do
|
morphologyList pgf ig cat number = do
|
||||||
ts <- generateRandom pgf cat >>= return . take (max 1 number)
|
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 :: String -> String
|
||||||
norml = unwords . words
|
norml = unwords . words
|
||||||
|
|
||||||
-- | the maximal number of precompiled quiz problems
|
|
||||||
infinity :: Int
|
|
||||||
infinity = 256
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user